Commit 07fc3d3f authored by jordan.dalby's avatar jordan.dalby

+ Code for formative assessment

parents
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/5"/>
<classpathentry kind="output" path="bin"/>
</classpath>
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>Programming 02 Lec 3 Ex 2</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.8
package com.jordan;
public class Complex
{
private double realPart;
private double imaginaryPart;
public Complex(double realPart, double imaginaryPart)
{
this.realPart = realPart;
this.imaginaryPart = imaginaryPart;
}
public Complex()
{
this(0,0);
}
public double real()
{
return this.realPart;
}
public double imag()
{
return this.imaginaryPart;
}
public double magnitude()
{
double val = Math.sqrt( ( Math.pow(realPart, 2) + Math.pow(imaginaryPart, 2) ) );
return val;
}
public double argument()
{
double val = Math.atan2(this.imaginaryPart, this.realPart);
return val;
}
public Complex add(Complex b)
{
double real = this.realPart + b.real();
double imag = this.imaginaryPart + b.imag();
Complex c = new Complex(real, imag);
return c;
}
}
package com.jordan;
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;
class ComplexTest {
@Test
void testBasic() {
/* Constructor should put the first parameter as the real part and second as the imaginary part.
* real() should return real part, imag() imaginary part.
*/
Complex a = new Complex(4.2, 5.7);
assertEquals(4.2, a.real(), 1e-6);
assertEquals(5.7, a.imag(), 1e-6);
Complex b = new Complex();
assertEquals(0, b.real(), 1e-6);
assertEquals(0, b.imag(), 1e-6);
}
@Test
void testMagnitude() {
/* magnitude() should return the magnitude of the complex number */
Complex a = new Complex(9.6, 11.5);
assertEquals(14.98032042, a.magnitude(), 1e-6);
}
@Test
void testArgument() {
/* argument() should return the argument of the complex number */
Complex a = new Complex(9.6, 11.5);
assertEquals(0.87520335, a.argument(), 1e-6);
}
@Test
void testAdd() {
/* add() should return a new complex number which is the sum of this and the parameter */
Complex a = new Complex(6.6, 12.9);
Complex b = new Complex(13.1, 13.5);
Complex c = a.add(b);
assertEquals(19.7, c.real(), 1e-6);
assertEquals(26.4, c.imag(), 1e-6);
}
@Test
void testToString() {
/* toString() should return a string like 1.2 + j3.4 where 1.2 is the real part
* and 3.4 the imaginary part.
*
Complex a = new Complex(1.2, 3.4);
assertEquals("1.2 + j3.4", a.toString());
Complex b = new Complex(1.2, 0.0);
assertEquals("1.2", b.toString());
Complex c = new Complex(0.0, 9.3);
assertEquals("j9.3", c.toString());
Complex d = new Complex(1.2, -3.4);
assertEquals("1.2 - j3.4", d.toString());*/
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment