package org.nd4j.linalg;
import org.junit.After;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import org.nd4j.linalg.api.complex.IComplexNDArray;
import org.nd4j.linalg.api.complex.IComplexNumber;
import org.nd4j.linalg.api.shape.Shape;
import org.nd4j.linalg.factory.Nd4j;
import org.nd4j.linalg.factory.Nd4jBackend;
import java.util.Arrays;
import static org.junit.Assert.assertEquals;
/**
* Base class for all complex ndarray tests
* Any tests here will share ordering (such as vectors)
*
* @author Adam Gibson
*/
@Ignore
public abstract class BaseComplexNDArrayTests extends BaseNd4jTest {
public BaseComplexNDArrayTests() {}
public BaseComplexNDArrayTests(Nd4jBackend backend) {
super(backend);
}
public BaseComplexNDArrayTests(String name) {
super(name);
}
public BaseComplexNDArrayTests(String name, Nd4jBackend backend) {
super(name, backend);
}
@Before
public void before() throws Exception {
super.before();
}
@After
public void after() throws Exception {
super.after();
}
@Test
public void testOtherLinearView() {
IComplexNDArray arr = Nd4j.complexLinSpace(1, 8, 8).reshape(2, 4);
IComplexNDArray slices = arr.slice(0);
IComplexNDArray slice1 = arr.slice(1);
IComplexNDArray arrLinear = arr.linearView();
System.out.println(arrLinear);
}
@Test
public void testWrap() {
IComplexNDArray c = Nd4j.createComplex(Nd4j.linspace(1, 4, 4).reshape(2, 2));
assertEquals(true, Arrays.equals(new int[] {2, 2}, c.shape()));
IComplexNDArray vec = Nd4j.createComplex(Nd4j.linspace(1, 4, 4));
assertEquals(true, vec.isVector());
assertEquals(true, Shape.shapeEquals(new int[] {4}, vec.shape()));
}
protected void verifyElements(IComplexNDArray d, IComplexNDArray d2) {
for (int i = 0; i < d.rows(); i++) {
for (int j = 0; j < d.columns(); j++) {
IComplexNumber test1 = d.getComplex(i, j);
IComplexNumber test2 = d2.getComplex(i, j);
assertEquals(test1.realComponent().doubleValue(), test2.realComponent().doubleValue(), 1e-6);
assertEquals(test1.imaginaryComponent().doubleValue(), test2.imaginaryComponent().doubleValue(), 1e-6);
}
}
}
}