diff --git a/src/demo/parallel/Complex.java b/src/demo/parallel/Complex.java index 134a37946..04b8ce091 100644 --- a/src/demo/parallel/Complex.java +++ b/src/demo/parallel/Complex.java @@ -71,6 +71,25 @@ public Complex plus(Complex b) { return this; } + /** + * Subtract operation. + * @param b minuend + * @return this Complex object whose value is (this - b) + */ + public Complex minus(Complex b) { + re -= b.re; + im -= b.im; + return this; + } + + public double getRe() { + return re; + } + + public double getIm() { + return im; + } + /** * Multiply operation. * @param b multiplier diff --git a/src/demo/parallel/MandelbrotSetTask.java b/src/demo/parallel/MandelbrotSetTask.java index adbb217b8..a09078d63 100644 --- a/src/demo/parallel/MandelbrotSetTask.java +++ b/src/demo/parallel/MandelbrotSetTask.java @@ -273,9 +273,9 @@ protected Long call() throws Exception { */ private int calc(Complex comp) { int count = 0; - Complex c = new Complex(0, 0); + Complex c = new Complex(0.308, 0); do { - c = c.times(c).plus(comp); + c = c.times(c).minus(comp); count++; } while (count < CAL_MAX_COUNT && c.lengthSQ() < LENGTH_BOUNDARY); return count; @@ -351,20 +351,20 @@ private Color getColor(int count) { * Color stops for colors table: color values */ Color[] cc = { - Color.rgb(40, 0, 0), + Color.VIOLET, Color.RED, Color.WHITE, - Color.RED, - Color.rgb(100, 0, 0), - Color.RED, - Color.rgb(50, 0, 0) + Color.CYAN, + Color.PURPLE, + Color.HOTPINK, + Color.MISTYROSE }; /** * Color stops for colors table: relative position in the table */ double[] cp = { - 0, 0.17, 0.25, 0.30, 0.5, 0.75, 1,}; + 0, 0.10, 0.20, 0.30, 0.5, 0.70, 1,}; /** * Color table population diff --git a/src/test/demo/parallel/ComplexTest.java b/src/test/demo/parallel/ComplexTest.java new file mode 100644 index 000000000..20278f2a4 --- /dev/null +++ b/src/test/demo/parallel/ComplexTest.java @@ -0,0 +1,19 @@ +package test.demo.parallel; + +import demo.parallel.Complex; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class ComplexTest { + + @Test + public void subtractTest() { + Complex a = new Complex(7.0, 2.0); + Complex b = new Complex(3.0, 1.0); + Complex difference = a.minus(b); + + assertEquals(4.0, difference.getRe(), 1e-10, "Real part must be 4.0" ); + assertEquals(1.0, difference.getIm(), 1e-10, "Imaginary part must be 1.0"); + } +}