@Test
  public void testElementWiseOps() {
    IComplexNDArray n1 = Nd4j.complexScalar(1);
    IComplexNDArray n2 = Nd4j.complexScalar(2);
    assertEquals(Nd4j.complexScalar(3), n1.add(n2));
    assertFalse(n1.add(n2).equals(n1));

    IComplexNDArray n3 = Nd4j.complexScalar(3);
    IComplexNDArray n4 = Nd4j.complexScalar(4);
    IComplexNDArray subbed = n4.sub(n3);
    IComplexNDArray mulled = n4.mul(n3);
    IComplexNDArray div = n4.div(n3);

    assertFalse(subbed.equals(n4));
    assertFalse(mulled.equals(n4));
    assertEquals(Nd4j.complexScalar(1), subbed);
    assertEquals(Nd4j.complexScalar(12), mulled);
    assertEquals(Nd4j.complexScalar(1.3333333333333333), div);

    IComplexNDArray multiDimensionElementWise =
        Nd4j.createComplex(Nd4j.create(Nd4j.linspace(1, 24, 24).data(), new int[] {4, 3, 2}));
    IComplexNumber sum2 = multiDimensionElementWise.sumComplex();
    assertEquals(sum2, Nd4j.createDouble(300, 0));
    IComplexNDArray added = multiDimensionElementWise.add(Nd4j.complexScalar(1));
    IComplexDouble sum3 = (IComplexDouble) added.sumComplex();
    assertEquals(sum3, Nd4j.createDouble(324, 0));
  }