Package mikera.vectorz

Source Code of mikera.vectorz.TestScalars

package mikera.vectorz;

import org.junit.Test;

import static org.junit.Assert.*;
import mikera.arrayz.TestArrays;
import mikera.matrixx.Matrixx;
import mikera.matrixx.impl.IdentityMatrix;
import mikera.vectorz.impl.DoubleScalar;
import mikera.vectorz.impl.ImmutableScalar;
import mikera.vectorz.impl.MatrixIndexScalar;

@SuppressWarnings("deprecation")
public class TestScalars {

  @Test
  public void miscTests() {
    AScalar s = new Scalar(2.0);
    assertEquals(2.0, s.elementSum(), 0.0);
    assertEquals(1, s.nonZeroCount(), 0.0);
  }

  private void testAsVector(AScalar s) {
    s=s.exactClone();
    AVector v = s.asVector();
    assertEquals(1, v.length());
    assertEquals(s.get(), v.get(0), 0.0);
   
    // confirm that asVector has produced a view
    if (v.isMutable()) {
      v.set(0,Double.NaN);
      assertTrue(Double.isNaN(s.get()));
    }
  }
 
  private void testMutability(AScalar s) {
    assertTrue(s.mutable().isFullyMutable());
    assertTrue(s.mutable().isMutable());

    assertFalse(s.immutable().isFullyMutable());
    assertFalse(s.immutable().isMutable());
   
    if (s.isMutable()) {
      s.exactClone().set(12456);
    } else {
      try {
        s.set(5476476);
        fail("Should nopt be mutable!");
      } catch (Throwable t) {
        // OK;
      }
    }
  }

  private void testToString(AScalar s) {
    assertEquals(Double.toString(s.get()), s.toString());
  }

  private void testScalar(AScalar s) {
    testAsVector(s);
    testMutability(s);
    testToString(s);
    assertEquals(0, s.dimensionality());

    new TestArrays().testArray(s);
  }

  @Test
  public void genericTests() {
    testScalar(new Scalar(1.0));
    testScalar(new DoubleScalar(1.0)); // deprecated but still test it
    testScalar(ImmutableScalar.create(1.33));
    testScalar(Vector.of(1, 2, 3).slice(1));
    testScalar(Vector.of(1, 2, 3, 4, 5, 6).slice(1));
   
    testScalar(MatrixIndexScalar.wrap(IdentityMatrix.create(3),2,2));
    testScalar(MatrixIndexScalar.wrap(Matrixx.createRandomMatrix(3, 3),0,2));
  }

}
TOP

Related Classes of mikera.vectorz.TestScalars

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.