Package com.moseph.modelutils.fastdata

Source Code of com.moseph.modelutils.fastdata.DoubleMatrixTest

package com.moseph.modelutils.fastdata;

import static org.junit.Assert.*;

import java.util.*;

import org.junit.*;

import static com.moseph.modelutils.fastdata.Columns.*;
import static com.moseph.modelutils.fastdata.Rows.*;

public class DoubleMatrixTest
{
  Columns[] cs = { Columns.A, Columns.B, Columns.C, Columns.D };
  Rows[] rs = { Rows.X, Rows.Y, Rows.Z };
  Columns A = Columns.A;
  Columns B = Columns.B;
  Columns C = Columns.C;
  Columns D = Columns.D;
  Rows X = Rows.X;
  Rows Y = Rows.Y;
  Rows Z = Rows.Z;
 
  @Test
  public void testBasicOperations()
  {
    //Should become:
    //  A B C D
    //X 1 2 3 4
    //Y 5 6 7 8
    //Z 9 101112
    DoubleMatrix<Columns, Rows> d = new DoubleMatrix<Columns, Rows>( cols, rows );
    fill(d, new double[][] {
      { 1, 2, 3, 4 },
      { 5 ,6, 7, 8 },
      { 9, 10, 11, 12 }
    });
   
    assertEquals( 6, d.get( B, Y ), 0.0001 );
    assertEquals( 12, d.get( D, Z ), 0.0001 );
    assertEquals( 15, d.getColumnTotal( A ), 0.0001 );
    assertEquals( 5, d.getColAverage( A ), 0.0001 );
    assertEquals( 6, d.getColAverage( B ), 0.0001 );
    assertEquals( 10, d.getRowTotal( X ), 0.0001 );
   
    DoubleMatrix<Columns, Rows> d2 = new DoubleMatrix<Columns, Rows>( cols, rows );
    fill(d2, new double[][] {
      { 1, 1, 1, 1 },
      { 1 ,1, 1, 1 },
      { 1, 1, 1, 1 }
    });
    d2.addInto( d );
   
    assertEquals( 7, d.get( B, Y ), 0.0001 );
    assertEquals( 13, d.get( D, Z ), 0.0001 );
    assertEquals( 18, d.getColumnTotal( A ), 0.0001 );
    assertEquals( 6, d.getColAverage( A ), 0.0001 );
    assertEquals( 7, d.getColAverage( B ), 0.0001 );
    assertEquals( 14, d.getRowTotal( X ), 0.0001 );
  }
 
  @Test
  public void testWeightedSums()
  {
    DoubleMatrix<Columns, Rows> d = new DoubleMatrix<Columns, Rows>( cols, rows );
    fill(d, new double[][] {
      { 1, 2, 3, 4 },
      { 5 ,6, 7, 8 },
      { 9, 10, 11, 12 }
    });
   
    assertEquals( 10, d.getWeightedRowTotal( X ), 0.001 );
    DoubleMap<Columns> colW = new DoubleMap<Columns>( cols );
    d.setColumnWeightings( colW );
    assertEquals( 0, d.getWeightedRowTotal( X ), 0.001 );
    colW.put( A, 2 );
    d.dirtyWeightedTotal = true;
    assertEquals( 2, d.getWeightedRowTotal( X ), 0.001 );
  }
 
  @Test
  public void testExtraction()
  {
    DoubleMatrix<Columns, Rows> d = new DoubleMatrix<Columns, Rows>( cols, rows );
    fill(d, new double[][] {
        { 1, 2, 3, 4 },
        { 5 ,6, 7, 8 },
        { 9, 10, 11, 12 }
      });
    DoubleMap<Columns> rowX = d.getRow( Y );
    assertEquals( 5, rowX.get( A ), 0.0001 );
    assertEquals( 6, rowX.get( B ), 0.0001 );
    assertEquals( 7, rowX.get( C ), 0.0001 );
   
    DoubleMap<Rows> colB = d.getColumn( B );
    assertEquals( 2, colB.get( X ), 0.0001 );
    assertEquals( 6, colB.get( Y ), 0.0001 );
    assertEquals( 10, colB.get( Z ), 0.0001 );
  }



 
  public void fill( DoubleMatrix<Columns, Rows> map, double[][] values )
  {
    for( int i = 0; i < values.length; i++ )
    {
      double[] v = values[i];
      Rows r = rs[i];
      for( int j = 0; j < v.length; j++ )
      {
        Columns c = cs[j];
        map.put( c, r, values[i][j] );
      }
    }
  }
 
}
TOP

Related Classes of com.moseph.modelutils.fastdata.DoubleMatrixTest

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.