From 6a44b074f0169a1b0f9e92347af929c5e471746e Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Sat, 18 Apr 2015 13:44:44 +0200 Subject: Reorganised projects --- Week7/Assignment (in Dutch).pdf | Bin 132898 -> 0 bytes Week7/Week7.tar.gz | Bin 5487 -> 0 bytes Week7/build.xml | 73 -- Week7/nbproject/build-impl.xml | 1413 ---------------------------- Week7/nbproject/genfiles.properties | 8 - Week7/nbproject/private/private.properties | 2 - Week7/nbproject/private/private.xml | 7 - Week7/nbproject/project.properties | 72 -- Week7/nbproject/project.xml | 15 - Week7/src/main/Main.java | 23 - Week7/src/polynomial/Polynomial.java | 189 ---- Week7/src/polynomial/Term.java | 145 --- Week7/test/polynomial/PolynomialTest.java | 226 ----- 13 files changed, 2173 deletions(-) delete mode 100644 Week7/Assignment (in Dutch).pdf delete mode 100644 Week7/Week7.tar.gz delete mode 100644 Week7/build.xml delete mode 100644 Week7/nbproject/build-impl.xml delete mode 100644 Week7/nbproject/genfiles.properties delete mode 100644 Week7/nbproject/private/private.properties delete mode 100644 Week7/nbproject/private/private.xml delete mode 100644 Week7/nbproject/project.properties delete mode 100644 Week7/nbproject/project.xml delete mode 100644 Week7/src/main/Main.java delete mode 100644 Week7/src/polynomial/Polynomial.java delete mode 100644 Week7/src/polynomial/Term.java delete mode 100644 Week7/test/polynomial/PolynomialTest.java (limited to 'Week7') diff --git a/Week7/Assignment (in Dutch).pdf b/Week7/Assignment (in Dutch).pdf deleted file mode 100644 index 5c9bd0c..0000000 Binary files a/Week7/Assignment (in Dutch).pdf and /dev/null differ diff --git a/Week7/Week7.tar.gz b/Week7/Week7.tar.gz deleted file mode 100644 index eaa77df..0000000 Binary files a/Week7/Week7.tar.gz and /dev/null differ diff --git a/Week7/build.xml b/Week7/build.xml deleted file mode 100644 index 58539ec..0000000 --- a/Week7/build.xml +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - - Builds, tests, and runs the project Week7. - - - diff --git a/Week7/nbproject/build-impl.xml b/Week7/nbproject/build-impl.xml deleted file mode 100644 index 881af77..0000000 --- a/Week7/nbproject/build-impl.xml +++ /dev/null @@ -1,1413 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must set src.dir - Must set test.src.dir - Must set build.dir - Must set dist.dir - Must set build.classes.dir - Must set dist.javadoc.dir - Must set build.test.classes.dir - Must set build.test.results.dir - Must set build.classes.excludes - Must set dist.jar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must set javac.includes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - No tests executed. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must set JVM to use for profiling in profiler.info.jvm - Must set profiler agent JVM arguments in profiler.info.jvmargs.agent - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must select some files in the IDE or set javac.includes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - To run this application from the command line without Ant, try: - - java -jar "${dist.jar.resolved}" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must select one file in the IDE or set run.class - - - - Must select one file in the IDE or set run.class - - - - - - - - - - - - - - - - - - - - - - - Must select one file in the IDE or set debug.class - - - - - Must select one file in the IDE or set debug.class - - - - - Must set fix.includes - - - - - - - - - - This target only works when run from inside the NetBeans IDE. - - - - - - - - - Must select one file in the IDE or set profile.class - This target only works when run from inside the NetBeans IDE. - - - - - - - - - This target only works when run from inside the NetBeans IDE. - - - - - - - - - - - - - This target only works when run from inside the NetBeans IDE. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must select one file in the IDE or set run.class - - - - - - Must select some files in the IDE or set test.includes - - - - - Must select one file in the IDE or set run.class - - - - - Must select one file in the IDE or set applet.url - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must select some files in the IDE or set javac.includes - - - - - - - - - - - - - - - - - - - - Some tests failed; see details above. - - - - - - - - - Must select some files in the IDE or set test.includes - - - - Some tests failed; see details above. - - - - Must select some files in the IDE or set test.class - Must select some method in the IDE or set test.method - - - - Some tests failed; see details above. - - - - - Must select one file in the IDE or set test.class - - - - Must select one file in the IDE or set test.class - Must select some method in the IDE or set test.method - - - - - - - - - - - - - - Must select one file in the IDE or set applet.url - - - - - - - - - Must select one file in the IDE or set applet.url - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Week7/nbproject/genfiles.properties b/Week7/nbproject/genfiles.properties deleted file mode 100644 index 80429a6..0000000 --- a/Week7/nbproject/genfiles.properties +++ /dev/null @@ -1,8 +0,0 @@ -build.xml.data.CRC32=b4c39fbe -build.xml.script.CRC32=45654c8f -build.xml.stylesheet.CRC32=8064a381@1.75.2.48 -# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. -# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. -nbproject/build-impl.xml.data.CRC32=b4c39fbe -nbproject/build-impl.xml.script.CRC32=5f42e684 -nbproject/build-impl.xml.stylesheet.CRC32=876e7a8f@1.75.2.48 diff --git a/Week7/nbproject/private/private.properties b/Week7/nbproject/private/private.properties deleted file mode 100644 index fca3b8a..0000000 --- a/Week7/nbproject/private/private.properties +++ /dev/null @@ -1,2 +0,0 @@ -compile.on.save=true -user.properties.file=/home/camilstaps/.netbeans/8.0.2/build.properties diff --git a/Week7/nbproject/private/private.xml b/Week7/nbproject/private/private.xml deleted file mode 100644 index 6807a2b..0000000 --- a/Week7/nbproject/private/private.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/Week7/nbproject/project.properties b/Week7/nbproject/project.properties deleted file mode 100644 index 2a8bf83..0000000 --- a/Week7/nbproject/project.properties +++ /dev/null @@ -1,72 +0,0 @@ -annotation.processing.enabled=true -annotation.processing.enabled.in.editor=false -annotation.processing.processor.options= -annotation.processing.processors.list= -annotation.processing.run.all.processors=true -annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output -build.classes.dir=${build.dir}/classes -build.classes.excludes=**/*.java,**/*.form -# This directory is removed when the project is cleaned: -build.dir=build -build.generated.dir=${build.dir}/generated -build.generated.sources.dir=${build.dir}/generated-sources -# Only compile against the classpath explicitly listed here: -build.sysclasspath=ignore -build.test.classes.dir=${build.dir}/test/classes -build.test.results.dir=${build.dir}/test/results -# Uncomment to specify the preferred debugger connection transport: -#debug.transport=dt_socket -debug.classpath=\ - ${run.classpath} -debug.test.classpath=\ - ${run.test.classpath} -# Files in build.classes.dir which should be excluded from distribution jar -dist.archive.excludes= -# This directory is removed when the project is cleaned: -dist.dir=dist -dist.jar=${dist.dir}/Week7.jar -dist.javadoc.dir=${dist.dir}/javadoc -excludes= -includes=** -jar.compress=false -javac.classpath= -# Space-separated list of extra javac options -javac.compilerargs= -javac.deprecation=false -javac.processorpath=\ - ${javac.classpath} -javac.source=1.7 -javac.target=1.7 -javac.test.classpath=\ - ${javac.classpath}:\ - ${build.classes.dir}:\ - ${libs.junit_4.classpath} -javac.test.processorpath=\ - ${javac.test.classpath} -javadoc.additionalparam= -javadoc.author=false -javadoc.encoding=${source.encoding} -javadoc.noindex=false -javadoc.nonavbar=false -javadoc.notree=false -javadoc.private=false -javadoc.splitindex=true -javadoc.use=true -javadoc.version=false -javadoc.windowtitle= -meta.inf.dir=${src.dir}/META-INF -mkdist.disabled=true -platform.active=default_platform -run.classpath=\ - ${javac.classpath}:\ - ${build.classes.dir} -# Space-separated list of JVM arguments used when running the project. -# You may also define separate properties like run-sys-prop.name=value instead of -Dname=value. -# To set system properties for unit tests define test-sys-prop.name=value: -run.jvmargs= -run.test.classpath=\ - ${javac.test.classpath}:\ - ${build.test.classes.dir} -source.encoding=UTF-8 -src.dir=src -test.src.dir=test diff --git a/Week7/nbproject/project.xml b/Week7/nbproject/project.xml deleted file mode 100644 index 60d2200..0000000 --- a/Week7/nbproject/project.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - org.netbeans.modules.java.j2seproject - - - Week7 - - - - - - - - - diff --git a/Week7/src/main/Main.java b/Week7/src/main/Main.java deleted file mode 100644 index 725b8f3..0000000 --- a/Week7/src/main/Main.java +++ /dev/null @@ -1,23 +0,0 @@ -package main; - -import polynomial.Polynomial; - -/** - * - * @author Sjaak Smetsers - */ -public class Main { - - public static void main(String[] args) { - Polynomial p1 = new Polynomial( "3.0 1 2 3" ); - Polynomial p2 = new Polynomial( "4 0 5 3" ); - Polynomial p3 = new Polynomial( "4 0 -5 3" ); - Polynomial p4 = new Polynomial( "6 1" ); - - System.out.println( p1 ); - System.out.println( p2 ); - System.out.println( p3 ); - System.out.println( p4 ); - } - -} diff --git a/Week7/src/polynomial/Polynomial.java b/Week7/src/polynomial/Polynomial.java deleted file mode 100644 index c87b96a..0000000 --- a/Week7/src/polynomial/Polynomial.java +++ /dev/null @@ -1,189 +0,0 @@ -package polynomial; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Scanner; - -/** - * A class for representing Polynomials - * - * @author Sjaak Smetsers - * @date 10-03-2015 - * - * @author Camil Staps, s4498062 - * @date 17-03-2015 - */ -public class Polynomial { - - /** - * A polynomial is a sequence of terms here kept in an List. - * The assignment tells us 'it's handy' when terms are ordered by exponent. - * We don't seem to need that though, so there's no need to implement it. - */ - List terms; - - /** - * A constructor for creating the zero Polynomial zero is presented as an - * empty list of terms and not as a single term with 0 as a coefficient - */ - public Polynomial() { - terms = new ArrayList<>(); - } - - /** - * A Constructor creating a polynomial from the argument string. - * - * This implementation, in contrast to the given implementation, allows for - * entering polynomials with two or more terms with the same exponent. Even - * though this is strictly not necessary and these inputs aren't legit, this - * behaviour is always better than the behaviour of the given implementation - * which would happily add two terms with the same exponent to our list. - * - * This implementation also directly checks that the coefficient unequals 0, - * which is also not need-to-have, but still nice-to-have. - * - * Both changes to the given implementation do not change the behaviour on - * legit input but do allow a user to mess up in some cases. - * - * @param s a String representing a list of terms which is converted to a - * scanner and passed to scanTerm for reading each individual term - */ - public Polynomial( String s ) { - terms = new ArrayList<>(); - Scanner scan = new Scanner(s); - - for (Term t = Term.scanTerm(scan); t != null; t = Term.scanTerm(scan)) - if (t.getCoef() != 0) - plus(t); - } - - /** - * The copy constructor for making a deep copy - * - * @param p the copied polynomial - */ - public Polynomial( Polynomial p ) { - terms = new ArrayList<>(p.terms.size()); - for (Term t : p.terms) { - terms.add(new Term(t)); - } - } - - /** - * A straightforward conversion of a Polynomial into a string based on the - * toString for terms - * - * @return a readable string representation of this - */ - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - boolean not_first = false; - for (Term t : terms) { - if (not_first && t.getCoef() >= 0) - sb.append("+"); - sb.append(t); - not_first = true; - } - return sb.toString(); - } - - /** - * Add a polynomial to this polynomial - * @param b the polynomial to add - */ - public void plus(Polynomial b) { - for (Term t : b.terms) - plus(t); - } - - /** - * Add a term - * @param t the term to add - */ - private void plus(Term t) { - if (t.getCoef() == 0) - return; - - Iterator iter = terms.iterator(); - while (iter.hasNext()) { - Term this_t = iter.next(); - if (this_t.getExp() == t.getExp()) { - this_t.plus(t); - if (this_t.getCoef() == 0) - iter.remove(); - return; - } - } - terms.add(new Term(t)); - } - - /** - * Subtract a polynomial from this polynomial - * @param p the polynomial to subtract - */ - public void minus(Polynomial p) { - Polynomial temp = new Polynomial(p); - temp.times(new Polynomial("-1 0")); - plus(temp); - } - - /** - * Multiply a polynomial with this polynomial - * @param p the polynomial to multiply with - */ - public void times(Polynomial p) { - Polynomial result = new Polynomial(); - for (Term that_t : p.terms) - for (Term this_t : terms) - result.plus(new Term(that_t.getCoef() * this_t.getCoef(), that_t.getExp() + this_t.getExp())); - terms = result.terms; - } - - public void divide(Polynomial b) { - } - - /** - * Check equality - * @param other_poly the object to check with - * @return true iff other_poly represents the same polynomial as this instance - */ - @Override - public boolean equals(Object other_poly) { - if (other_poly == null || other_poly.getClass() != getClass()) - return false; - - Polynomial that = new Polynomial((Polynomial) other_poly); // We need to copy because later we'll remove elements - if (terms.size() != that.terms.size()) - return false; - for (Term this_t : terms) { - Iterator that_iter = that.terms.iterator(); - boolean found = false; - while (that_iter.hasNext()) { - if (this_t.equals(that_iter.next())) { - found = true; - that_iter.remove(); - break; - } - } - if (!found) { - return false; - } - } - return true; - } - - /** - * Apply the polynomial to a concrete variable - * @param x the variable - * @return the result of the polynomial applied on x - */ - public double apply(double x) { - double result = 0; - for (Term t : terms) - result += t.apply(x); - return result; - } - -} diff --git a/Week7/src/polynomial/Term.java b/Week7/src/polynomial/Term.java deleted file mode 100644 index 60c6381..0000000 --- a/Week7/src/polynomial/Term.java +++ /dev/null @@ -1,145 +0,0 @@ -package polynomial; - -import java.util.Scanner; - -/** - * For representing terms in a polynomial. - * - * @author Sjaak Smetsers - * @version 1.0 - * @date 15-02-2012 - * - * @author Camil Staps, s4498062 - * @date 17-03-2015 - */ -public class Term { - - /** - * Each term consists of a coefficient and an exponent - */ - private double coefficient; - private int exponent; - - /** - * a get-method for the exponent - * - * @return exponent - */ - public int getExp() { - return exponent; - } - - /** - * a get-method for the coefficient - * - * @return coefficient - */ - public double getCoef() { - return coefficient; - } - - /** - * A two-argument constructor - * - * @param c the value for the coefficient - * @param e the value for the exponent - */ - public Term(double c, int e) { - coefficient = c; - exponent = e; - } - - /** - * A copy-constructor - * - * @param t the term to be copied - */ - public Term(Term t) { - this(t.coefficient, t.exponent); - } - - /** - * For adding two terms with equal exponents - * - * @param t the term added to this - * @require exponent == t.exponent - */ - public void plus(Term t) { - coefficient += t.coefficient; - } - - /** - * For multiplying two terms - * - * @param t the multiplier - */ - public void times(Term t) { - exponent += t.exponent; - coefficient *= t.coefficient; - } - - /** - * Converts a term into a readable representation the standard format is - * %fx^%d - * I changed the implementation to remove trailing zeroes from the coefficient. - * - * @return the string representing the term - */ - @Override - public String toString() { - String nice_coefficient = Double.toString(coefficient); - if (Math.round(coefficient) == coefficient) - nice_coefficient = Integer.toString((int) coefficient); - if (exponent == 0) { - return String.format("%s", nice_coefficient, exponent); - } else if (exponent == 1) { - return String.format("%sx", nice_coefficient, exponent); - } else { - return String.format("%sx^%d", nice_coefficient, exponent); - } - } - - /** - * Standard implementation of equality - * @param may_be_term the object to check equality with - * @return true iff may_be_term represents the same term as this term - */ - @Override - public boolean equals(Object may_be_term) { - if (may_be_term == null || getClass() != may_be_term.getClass()) { - return false; - } else { - Term term = (Term) may_be_term; - return exponent == term.exponent - && coefficient == term.coefficient; - } - } - - /** - * Apply a term to a concrete variable - * @param x the variable to apply the term to - * @return the result of the application of the term to x - */ - public double apply(double x) { - return coefficient * Math.pow(x, exponent); - } - - /** - * A static method for converting scanner input into a term. The expected - * format is two numbers (coef, exp) separated by whitespaces. The coef - * should be either an integer or a decimal number. The exp is an integer. - * - * @param s the scanner providing the input - * @return null if no term could be found, the found term otherwise - */ - public static Term scanTerm(Scanner s) { - String coef_patt = "\\-?\\d+(\\.\\d+)?"; - if (s.hasNext(coef_patt)) { - String coef = s.next(coef_patt); - int exp = s.nextInt(); - return new Term(Double.parseDouble(coef), exp); - } else { - return null; - } - } -} diff --git a/Week7/test/polynomial/PolynomialTest.java b/Week7/test/polynomial/PolynomialTest.java deleted file mode 100644 index c00f165..0000000 --- a/Week7/test/polynomial/PolynomialTest.java +++ /dev/null @@ -1,226 +0,0 @@ -package polynomial; - -import org.junit.After; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Test; -import static org.junit.Assert.*; - -/** - * A test class for the polynomial.Polynomial class - * @author Camil Staps, s4498062 - */ -public class PolynomialTest { - - public PolynomialTest() { - } - - @BeforeClass - public static void setUpClass() { - } - - @AfterClass - public static void tearDownClass() { - } - - @Before - public void setUp() { - } - - @After - public void tearDown() { - } - - /** - * Test of toString method, of class Polynomial. - */ - @Test - public void testToString() { - System.out.println("toString"); - // Test exp=0, exp=1, exp>1, positive & negative integer & floating point coefficients all at once - assertEquals("3x^5-4x+2.5-3.4x^-7", new Polynomial("3 5 -4 1 2.5 0 -3.4 -7").toString()); - // Test zero polynomial - assertEquals("", new Polynomial().toString()); - } - - /** - * Test of minus method, of class Polynomial. - */ - @Test - public void testMinus() { - System.out.println("minus"); - // Test cancelling out and exponents that don't exist in either of the two polynomials all at once - Polynomial instance = new Polynomial("7 4 -4 2 3 1 5 0"); // 7x^4 - 4x^2 + 3x + 5 - instance.minus(new Polynomial("5 3 4 2 3 1 10 0")); // 5x^3 + 4x^2 + 3x + 10 - assertEquals(new Polynomial("7 4 -5 3 -8 2 -5 0"), instance); // 7x^4 - 5x^3 - 8x^2 - 5 - - // Test minus = plus (times -1) on many small 2-term polynomials - for (float c1 = -10; c1 < 10; c1 += 2.3) - for (int exp1 = 5; exp1 < 10; exp1++) - for (float c2 = -10; c2 < 10; c2 += 2.3) - for (int exp2 = 5; exp2 < 10; exp2++) { - Polynomial fst = new Polynomial(c1 + " " + exp1 + " " + c2 + " " + exp2); - Polynomial snd = new Polynomial(c1 + " " + exp2 + " " + c2 + " " + exp1); - Polynomial fst_2 = new Polynomial(fst); - Polynomial snd_2 = new Polynomial(snd); - fst.minus(snd); - snd_2.times(new Polynomial("-1 0")); - fst_2.plus(snd_2); - assertEquals(true, fst.equals(fst_2)); - } - - // Test associativity for some random polynomials - Polynomial a = new Polynomial("5 4 2 5 20 8 4 0"); - Polynomial b = new Polynomial("9 2 48 2 10 8 28 2"); - Polynomial c = new Polynomial("3 8 4 20 8 2 4 5 0 0"); - Polynomial a_bc = new Polynomial(a); - a_bc.minus(b); - a_bc.minus(c); - Polynomial a_cb = new Polynomial(a); - a_cb.minus(c); - a_cb.minus(b); - assertEquals(true, a_bc.equals(a_cb)); - } - - /** - * Test of times method, of class Polynomial. - */ - @Test - public void testTimes() { - System.out.println("times"); - - // Simple case - Polynomial instance = new Polynomial("7 1 6 3"); - instance.times(new Polynomial("5 3 4 2")); - assertEquals(new Polynomial("30 6 24 5 35 4 28 3"), instance); - - // Simple case with zero polynomial - instance = new Polynomial("5 3"); - instance.times(new Polynomial()); - assertEquals(new Polynomial(), instance); - - // Advanced case with coefficient 0 in the result - instance = new Polynomial("4 4 2 3"); // 4x^4 + 2x^3 - instance.times(new Polynomial("2 2 -4 3")); // 2x^2 - 4x^3 - assertEquals(new Polynomial("4 5 -16 7"), instance); // 4x^5 - 16x^7 (exponent 6 cancels out) - - // Test associativity for some random polynomials - Polynomial a = new Polynomial("5 4 2 5 20 8 4 0"); - Polynomial b = new Polynomial("9 2 48 2 10 8 28 2"); - Polynomial c = new Polynomial("3 8 4 20 8 2 4 5 0 0"); - Polynomial a_bc = new Polynomial(a); - a_bc.times(b); - a_bc.times(c); - Polynomial a_cb = new Polynomial(a); - a_cb.times(c); - a_cb.times(b); - assertEquals(true, a_bc.equals(a_cb)); - - // Test commutativity - Polynomial a_b = new Polynomial(a); - a_b.times(b); - Polynomial b_a = new Polynomial(b); - b_a.times(a); - assertEquals(true, a_b.equals(b_a)); - - // Test left distributivity - Polynomial b_plus_c = new Polynomial(b); - b_plus_c.plus(c); - Polynomial a_times_b_plus_c = new Polynomial(a); - a_times_b_plus_c.times(b_plus_c); - Polynomial a_times_c = new Polynomial(a); - a_times_c.times(c); - Polynomial a_times_b_plus_a_times_c = new Polynomial(a); - a_times_b_plus_a_times_c.times(b); - a_times_b_plus_a_times_c.plus(a_times_c); - assertEquals(true, a_times_b_plus_c.equals(a_times_b_plus_a_times_c)); - - // Test right distributivity - Polynomial b_plus_c_times_a = new Polynomial(b); - b_plus_c_times_a.plus(c); - b_plus_c_times_a.times(a); - Polynomial c_times_a = new Polynomial(c); - c_times_a.times(a); - Polynomial b_times_a_plus_c_times_a = new Polynomial(b); - b_times_a_plus_c_times_a.times(a); - b_times_a_plus_c_times_a.plus(c_times_a); - assertEquals(true, b_plus_c_times_a.equals(b_times_a_plus_c_times_a)); - } - - /** - * Test of divide method, of class Polynomial. - */ - @Test - public void testDivide() { - System.out.println("divide"); - Polynomial b = null; - Polynomial instance = new Polynomial(); - instance.divide(b); - // TODO review the generated test code and remove the default call to fail. - fail("The test case is a prototype."); - } - - /** - * Test of equals method, of class Polynomial. - */ - @Test - public void testEquals() { - System.out.println("equals"); - // Order of terms irrelevant - assertEquals(true, new Polynomial("4 2 3 5").equals(new Polynomial("3 5 4 2"))); - // Terms with same exponent are added - assertEquals(true, new Polynomial("5 5 10 5").equals(new Polynomial("15 5"))); - // Simple coefficient 0 removed - assertEquals(true, new Polynomial("0 7").equals(new Polynomial())); - // Advanced coefficient 0 removed - assertEquals(true, new Polynomial("5 10 -5 10").equals(new Polynomial())); - // Difference in exponent matters - assertEquals(false, new Polynomial("10 0").equals(new Polynomial("10 1"))); - // Difference in coefficient matters - assertEquals(false, new Polynomial("10 0").equals(new Polynomial("5 0"))); - } - - /** - * Test of plus method, of class Polynomial. - */ - @Test - public void testPlus_Polynomial() { - System.out.println("plus"); - // Test cancelling out and exponents that don't exist in either of the two polynomials all at once - Polynomial instance = new Polynomial("7 4 -4 2 7 1 5 0"); // 7x^4 - 4x^2 + 7x + 5 - instance.plus(new Polynomial("5 3 4 2 3 1 10 0")); // 5x^3 + 4x^2 + 3x + 10 - assertEquals(new Polynomial("7 4 5 3 10 1 15 0"), instance); // 7x^4 + 5x^3 + 10x + 15 - - // Test associativity for some random polynomials - Polynomial a = new Polynomial("5 4 2 5 20 8 4 0"); - Polynomial b = new Polynomial("9 2 7 5 10 8 28 2"); - Polynomial c = new Polynomial("3 8 4 20 8 2 4 5 0 0"); - Polynomial a_bc = new Polynomial(a); - a_bc.plus(b); - a_bc.plus(c); - Polynomial a_cb = new Polynomial(a); - a_cb.plus(c); - a_cb.plus(b); - assertEquals(true, a_bc.equals(a_cb)); - - // Test commutativity - Polynomial a_b = new Polynomial(a); - a_b.plus(b); - Polynomial b_a = new Polynomial(b); - b_a.plus(a); - assertEquals(true, a_b.equals(b_a)); - } - - /** - * Test of apply method, of class Polynomial. - */ - @Test - public void testApply() { - System.out.println("apply"); - // Test zero coefficient, floating point coefficient and negative coefficient all at once - Polynomial instance = new Polynomial("0 7 5 4 0.5 3 9 2 -8 0"); - assertEquals(422654.5, instance.apply(17.0), 0.0); - } - -} -- cgit v1.2.3