/* SignalMLAssert.java created 2011-02-05
*
*/
package org.signalml;
import org.apache.commons.math.complex.Complex;
import org.apache.commons.math.linear.RealMatrix;
import org.apache.commons.math.linear.RealVector;
import org.junit.Assert;
/**
* This class is an extension of a JUnit class and is able to perform some additional
* assertions needed in Svarog test.
*
* @author Piotr Szachewicz
*/
public class SignalMLAssert extends Assert {
/**
* Asserts that two Complex numbers are equal concerning a delta.
*
* @param expected the expected value
* @param actual the actual value
* @param delta determines how much the actual value can be different from the expected
* value
*/
public static void assertEquals(Complex expected, Complex actual, Complex delta) {
assertEquals(expected.getReal(), actual.getReal(), delta.getReal());
assertEquals(expected.getImaginary(), actual.getImaginary(), delta.getImaginary());
}
/**
* Asserts that two Complex numbers are equal concerning a delta equal to 1e-5.
*
* @param expected the expected value
* @param actual the actual value
*/
public static void assertEquals(Complex expected, Complex actual) {
assertEquals(expected, actual, new Complex(1e-5, 1e-5));
}
/**
* Asserts that the elements of two Complex number arrays are equal concerning
* a delta.
*
* @param expected the expected values
* @param actual the actual values
* @param delta determines how much the actual value can be different from the expected
* value
*/
public static void assertArrayEquals(Complex[] expected, Complex[] actual, Complex delta) {
assertEquals(expected.length, actual.length);
for (int i = 0; i < expected.length; i++)
assertEquals(expected[i],actual[i], delta);
}
/**
* Asserts that the elements of two double arrays are equal concerning
* a delta.
*
* @param expected the expected values
* @param actual the actual values
* @param delta determines how much the actual value can be different from the expected
* value for the assertion to hold true
*/
public static void assertArrayEquals(double[] expected, double[] actual, double delta) {
assertEquals(expected.length, actual.length);
for (int i = 0; i < expected.length; i++)
assertEquals(expected[i],actual[i], delta);
}
/**
* Asserts that the elements of two double arrays are equal concerning
* a delta.
*
* @param expected the expected values
* @param actual the actual values
* @param delta determines how much the actual value can be different from the expected
* value for the assertion to hold true
*/
public static void assertArrayEquals(double[][] expected, double[][] actual, double delta) {
assertEquals(expected.length, actual.length);
for (int i = 0; i < expected.length; i++)
assertArrayEquals(expected[i], actual[i], delta);
}
/**
* Asserts that the elements of two double matrices are equal concerning
* a delta.
*
* @param expected the expected values
* @param actual the actual values
* @param delta determines how much the actual value can be different from the expected
* value for the assertion to hold true
*/
public static void assertMatrixEquals(RealMatrix expected, RealMatrix actual, double delta) {
double[][] expectedData = expected.getData();
double[][] actualData = actual.getData();
assertArrayEquals(expectedData, actualData, delta);
}
/**
* Asserts that the elements of two vectors are equal concerning
* a delta.
*
* @param expected the expected values
* @param actual the actual values
* @param delta determines how much the actual value can be different from the expected
* value for the assertion to hold true
*/
public static void assertVectorEquals(RealVector expected, RealVector actual, double delta) {
double[] expectedData = expected.getData();
double[] actualData = actual.getData();
assertArrayEquals(expectedData, actualData, delta);
}
}