testmatrixn.java

来自「mallet是自然语言处理、机器学习领域的一个开源项目。」· Java 代码 · 共 121 行

JAVA
121
字号
/* Copyright (C) 2003 Univ. of Massachusetts Amherst, Computer Science Dept.   This file is part of "MALLET" (MAchine Learning for LanguagE Toolkit).   http://www.cs.umass.edu/~mccallum/mallet   This software is provided under the terms of the Common Public License,   version 1.0, as published by http://www.opensource.org.  For further   information, see the file `LICENSE' included with this distribution. */package edu.umass.cs.mallet.base.types.tests;import edu.umass.cs.mallet.base.types.Matrixn;import edu.umass.cs.mallet.base.types.MatrixOps;import junit.framework.Test;import junit.framework.TestCase;import junit.framework.TestSuite;import java.util.Arrays;import java.io.IOException;/** * Created: Aug 30, 2004 * * @author <A HREF="mailto:casutton@cs.umass.edu>casutton@cs.umass.edu</A> * @version $Id: TestMatrixn.java,v 1.2 2004/08/30 19:43:29 casutton Exp $ */public class TestMatrixn extends TestCase {  public TestMatrixn (String name)  {    super (name);  }  public void testIndexing1d ()  {    double m1[] = new double[]{1.0, 2.0, 3.0, 4.0};    int idx1[] = new int[1];    Matrixn a = new Matrixn (m1);    a.singleToIndices (3, idx1);    assertEquals (3, idx1[0]);    assertEquals (3, a.singleIndex (idx1));  }  public void testIndexing2d ()  {    int[] sizes = new int[]{2, 3};    double[] m1 = new double[6];    for (int i = 0; i < 6; i++) {      m1[i] = 2.0 * i;    }    Matrixn a = new Matrixn (sizes, m1);    int[] idx1 = new int[2];    a.singleToIndices (5, idx1);    System.out.println (idx1[0]+" , "+idx1[1]);    int[] trueIdx = new int[] {1, 2};    assertTrue (Arrays.equals (trueIdx, idx1));    assertEquals (5, a.singleIndex (idx1));    assertEquals (10.0, a.value (idx1), 1e-12);  }  public void testIndexing3d ()  {    Matrixn a = make3dMatrix ();    int[] idx1 = new int[3];    a.singleToIndices (21, idx1);    int[] trueIdx = new int[]{1, 2, 1};    assertTrue (Arrays.equals (trueIdx, idx1));    assertEquals (21, a.singleIndex (idx1));    assertEquals (42.0, a.value (idx1), 1e-12);  }  private Matrixn make3dMatrix ()  {    int[] sizes = new int[]{2, 3, 4};    double[] m1 = new double[24];    for (int i = 0; i < 24; i++) {      m1[i] = 2.0 * i;    }    Matrixn a = new Matrixn (sizes, m1);    return a;  }  public void testMatrixnSerializable () throws IOException, ClassNotFoundException  {    Matrixn a = make3dMatrix ();    Matrixn b = (Matrixn) TestSerializable.cloneViaSerialization (a);    assertEquals (a.singleSize(), b.singleSize());    for (int i = 0; i < a.singleSize (); i++) {      int[] idxa = new int [a.getNumDimensions ()];      int[] idxb = new int [a.getNumDimensions ()];      a.singleToIndices (i, idxa);      b.singleToIndices (i, idxb);      assertTrue (Arrays.equals (idxa, idxb));      assertEquals (a.value (idxa), b.value (idxb), 1e-12);    }  }    public static Test suite ()  {    return new TestSuite (TestMatrixn.class);  }  public static void main (String[] args) throws Throwable  {    TestSuite theSuite;    if (args.length > 0) {      theSuite = new TestSuite ();      for (int i = 0; i < args.length; i++) {        theSuite.addTest (new TestMatrixn (args[i]));      }    } else {      theSuite = (TestSuite) suite ();    }    junit.textui.TestRunner.run (theSuite);  }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?