package jscl.math.numeric;
import jscl.AngleUnit;
import jscl.JsclMathEngine;
import jscl.math.Expression;
import org.junit.Test;
import static junit.framework.Assert.assertEquals;
public class ComplexTest {
@Test
public void testSmallImag() throws Exception {
assertEquals("1+0.000000000000001*i", Complex.valueOf(1, 0.000000000000001).toString());
assertEquals("1-0.000000000000001*i", Complex.valueOf(1, -0.000000000000001).toString());
}
@Test
public void testTrig() throws Exception {
try {
JsclMathEngine.getInstance().setAngleUnits(AngleUnit.rad);
assertEquals("1.543080634815244", Expression.valueOf("cos(i)").numeric().toString());
assertEquals("1.175201193643801*i", Expression.valueOf("sin(i)").numeric().toString());
assertEquals("11013.2328747034*i", Expression.valueOf("sin(10*i)").numeric().toString());
assertEquals("11013.23292010332", Expression.valueOf("cos(10*i)").numeric().toString());
assertEquals("0.46211715726001*i", Expression.valueOf("tan(i/2)").numeric().toString());
assertEquals("-2.163953413738653*i", Expression.valueOf("cot(i/2)").numeric().toString());
} finally {
JsclMathEngine.getInstance().setAngleUnits(JsclMathEngine.DEFAULT_ANGLE_UNITS);
}
}
}