From b0646c93d7a2aece16b099ab805af2d58753ac79 Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Tue, 17 Mar 2015 21:57:28 +0100 Subject: Various small enhancements --- Week7/test/polynomial/PolynomialTest.java | 72 ++++++++++++++++++++++++++++--- 1 file changed, 66 insertions(+), 6 deletions(-) (limited to 'Week7/test/polynomial') diff --git a/Week7/test/polynomial/PolynomialTest.java b/Week7/test/polynomial/PolynomialTest.java index c0f9c4b..8560dfb 100644 --- a/Week7/test/polynomial/PolynomialTest.java +++ b/Week7/test/polynomial/PolynomialTest.java @@ -1,8 +1,3 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ package polynomial; import org.junit.After; @@ -44,7 +39,7 @@ public class PolynomialTest { public void testToString() { System.out.println("toString"); // Test exp=0, exp=1, exp>1, positive & negative integer & floating point coefficients all at once - assertEquals("3.000000x^5-4.000000x+2.500000-3.400000x^-7", new Polynomial("3 5 -4 1 2.5 0 -3.4 -7").toString()); + 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()); } @@ -59,6 +54,33 @@ public class PolynomialTest { 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)); } /** @@ -82,6 +104,25 @@ public class PolynomialTest { 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)); } /** @@ -127,6 +168,25 @@ public class PolynomialTest { 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)); } /** -- cgit v1.2.3