@ContinuousIntegrationTest(estimatedDuration = 0.0, categoriesOverride = {IntegrationCategory.FAST}) @Test(timeout = 30000) public void tesNthRoots() { ComplexNumber c1 = new ComplexNumber(1.0, 0.0); List<ComplexNumber> roots = new ArrayList<>(8); for(int i = 0; i < 8; i++) roots.add(new ComplexNumber()); c1.getRoots(roots, 8); for(int i = 0; i < roots.size(); i++) { assert (MathTools.epsilonCompare(roots.get(i).real(), Math.cos(i*2.0*Math.PI/8.0), Epsilons.ONE_BILLIONTH)); assert (MathTools.epsilonCompare(roots.get(i).imag(), Math.sin(i*2.0*Math.PI/8.0), Epsilons.ONE_BILLIONTH)); } }
public double getInitialTime() { if (MathTools.epsilonCompare(xTrajectory.getInitialTime(), yTrajectory.getInitialTime(), Epsilons.ONE_THOUSANDTH) && MathTools.epsilonCompare(xTrajectory.getInitialTime(), zTrajectory.getInitialTime(), Epsilons.ONE_THOUSANDTH)) return xTrajectory.getInitialTime(); else { //PrintTools.warn("Trajectory initial times do not match. Using X trajectory times for computation"); return xTrajectory.getInitialTime(); } }
public double getFinalTime() { if (MathTools.epsilonCompare(xTrajectory.getFinalTime(), yTrajectory.getFinalTime(), Epsilons.ONE_THOUSANDTH) && MathTools.epsilonCompare(xTrajectory.getFinalTime(), zTrajectory.getFinalTime(), Epsilons.ONE_THOUSANDTH)) return xTrajectory.getFinalTime(); else { //PrintTools.warn("Trajectory final times do not match. Using X trajectory times for computation"); return xTrajectory.getFinalTime(); } }
public double getFinalTime() { if (MathTools.epsilonCompare(xTrajectory.getFinalTime(), yTrajectory.getFinalTime(), Epsilons.ONE_THOUSANDTH) && MathTools.epsilonCompare(xTrajectory.getFinalTime(), zTrajectory.getFinalTime(), Epsilons.ONE_THOUSANDTH)) return xTrajectory.getFinalTime(); else { //PrintTools.warn("Trajectory final times do not match. Using X trajectory times for computation"); return xTrajectory.getFinalTime(); } }
public double getInitialTime() { if (MathTools.epsilonCompare(xTrajectory.getInitialTime(), yTrajectory.getInitialTime(), Epsilons.ONE_THOUSANDTH) && MathTools.epsilonCompare(xTrajectory.getInitialTime(), zTrajectory.getInitialTime(), Epsilons.ONE_THOUSANDTH)) return xTrajectory.getInitialTime(); else { //PrintTools.warn("Trajectory initial times do not match. Using X trajectory times for computation"); return xTrajectory.getInitialTime(); } }
@ContinuousIntegrationTest(estimatedDuration = 0.0) @Test(timeout = 30000) public void testGetDerivative() { YoTrajectory traj = new YoTrajectory("Trajectory", 10, registry); YoTrajectory dervTraj = new YoTrajectory("DerivativeTrajectory", 9, registry); traj.setCubic(1, 10, 0, 8); traj.getDerivative(dervTraj, 1); assert (dervTraj.getNumberOfCoefficients() == 3); assert (MathTools.epsilonCompare(1.0 * traj.getCoefficient(1), dervTraj.getCoefficient(0), 1)); assert (MathTools.epsilonCompare(2.0 * traj.getCoefficient(2), dervTraj.getCoefficient(1), 1)); assert (MathTools.epsilonCompare(3.0 * traj.getCoefficient(3), dervTraj.getCoefficient(2), 1)); } }
@ContinuousIntegrationTest(estimatedDuration = 0.0, categoriesOverride = {IntegrationCategory.FAST}) @Test(timeout = 30000) public void testFourierTransform() { double[] testArray = {1, 1, 1, 1, 1}; FastFourierTransform fft = new FastFourierTransform(8); fft.setCoefficients(testArray); ComplexNumber[] result = fft.getForwardTransform(); fft.setCoefficients(result); result = fft.getInverseTransform(); for (int i = 0; i < 5; i++) assertTrue (MathTools.epsilonCompare(result[i].real(), 1, Epsilons.ONE_BILLIONTH)); for (int i = 5; i < result.length; i++) assertTrue (MathTools.epsilonCompare(result[i].real(), 0, Epsilons.ONE_BILLIONTH)); }
@ContinuousIntegrationTest(estimatedDuration = 0.0, categoriesOverride = {IntegrationCategory.FAST}) @Test(timeout = 30000) public void testFourierTransform2() { double[] testArray1 = {1, 1}; double[] testArray2 = {1, 1, 1}; FastFourierTransform fft = new FastFourierTransform(4); fft.setCoefficients(testArray1); ComplexNumber[] result1 = fft.getForwardTransform(); ComplexNumber[] saveVals = new ComplexNumber[4]; for(int i = 0; i < 4; i++) saveVals[i] = new ComplexNumber(result1[i]); fft.setCoefficients(testArray2); ComplexNumber[] result2 = fft.getForwardTransform(); for (int i = 0; i < result1.length; i++) saveVals[i].timesAndStore(result2[i]); fft.setCoefficients(saveVals); result1 = fft.getInverseTransform(); assertTrue (MathTools.epsilonCompare(result1[0].real(), 1, Epsilons.ONE_BILLIONTH)); assertTrue (MathTools.epsilonCompare(result1[1].real(), 2, Epsilons.ONE_BILLIONTH)); assertTrue (MathTools.epsilonCompare(result1[2].real(), 2, Epsilons.ONE_BILLIONTH)); assertTrue (MathTools.epsilonCompare(result1[3].real(), 1, Epsilons.ONE_BILLIONTH)); }