Package com.jacob.test.safearray

Source Code of com.jacob.test.safearray.SafeArrayBasicTest

package com.jacob.test.safearray;

import com.jacob.com.SafeArray;
import com.jacob.com.Variant;
import com.jacob.test.BaseTestCase;

/**
* SafeArrayTest Program
*
* This is more of an exerciser. It doesn't verify that it gets back what it
* expects like a junit test would
* <p>
* May need to run with some command line options (including from inside
* Eclipse). Look in the docs area at the Jacob usage document for command line
* options.
*
*/
public class SafeArrayBasicTest extends BaseTestCase {

  /**
   *
   */
  public void testShortSafeArray() {
    short sourceData[] = new short[] { 1, 2, 3 };
    SafeArray saUnderTest = new SafeArray(Variant.VariantVariant, 3);

    saUnderTest.fromShortArray(sourceData);
    short[] extractedFromSafeArray = saUnderTest.toShortArray();
    for (int i = 0; i < extractedFromSafeArray.length; i++) {
      assertEquals("" + i, sourceData[i], extractedFromSafeArray[i]);
    }

    assertEquals("single get failed: ", sourceData[2], saUnderTest
        .getShort(2));

    // test conversion
    int[] extractedFromSafeArrayInt = saUnderTest.toIntArray();
    for (int i = 0; i < extractedFromSafeArray.length; i++) {
      assertEquals("" + i, sourceData[i], extractedFromSafeArrayInt[i]);
    }
    // test conversion
    double[] extractedFromSafeArrayDouble = saUnderTest.toDoubleArray();
    for (int i = 0; i < extractedFromSafeArrayDouble.length; i++) {
      assertEquals("" + i, new Double(sourceData[i]).doubleValue(),
          extractedFromSafeArrayDouble[i]);
    }
    // test conversion
    Variant extractedFromSafeArrayVariant[] = saUnderTest.toVariantArray();
    for (int i = 0; i < extractedFromSafeArrayVariant.length; i++) {
      assertEquals("" + i, sourceData[i],
          extractedFromSafeArrayVariant[i].getShort());
    }
  }

  /**
   *
   */
  public void testIntSafeArray() {
    int sourceData[] = new int[] { 100000, 200000, 300000 };
    SafeArray saUnderTest = new SafeArray(Variant.VariantVariant, 3);
    saUnderTest.fromIntArray(sourceData);
    int[] extractedFromSafeArray = saUnderTest.toIntArray();
    for (int i = 0; i < extractedFromSafeArray.length; i++) {
      assertEquals("" + i, sourceData[i], extractedFromSafeArray[i]);
    }
    assertEquals("single get failed: ", sourceData[2], saUnderTest
        .getInt(2));

  }

  /**
   *
   */
  public void testLongSafeArray() {
    long sourceData[] = new long[] { 2L << 40, 3L << 41, 4L << 42 };
    SafeArray saUnderTest = new SafeArray(Variant.VariantVariant, 3);
    saUnderTest.fromLongArray(sourceData);
    long[] extractedFromSafeArray = saUnderTest.toLongArray();
    for (int i = 0; i < extractedFromSafeArray.length; i++) {
      assertEquals("" + i, sourceData[i], extractedFromSafeArray[i]);
    }
    assertEquals("single get failed: ", sourceData[2], saUnderTest
        .getLong(2));

  }

  /**
   *
   */
  public void testDoubleSafeArray() {
    double sourceData[] = new double[] { 1.5, 2.5, 3.5 };
    SafeArray saUnderTest = new SafeArray(Variant.VariantVariant, 3);
    saUnderTest.fromDoubleArray(sourceData);
    double[] extractedFromSafeArray = saUnderTest.toDoubleArray();
    for (int i = 0; i < extractedFromSafeArray.length; i++) {
      assertEquals("" + i, sourceData[i], extractedFromSafeArray[i]);
    }
    assertEquals("single get failed: ", sourceData[2], saUnderTest
        .getDouble(2));

  }

  /**
   *
   */
  public void testFloatSafeArray() {
    float sourceData[] = new float[] { 1.5F, 2.5F, 3.5F };
    SafeArray saUnderTest = new SafeArray(Variant.VariantVariant, 3);
    saUnderTest.fromFloatArray(sourceData);
    float[] extractedFromSafeArray = saUnderTest.toFloatArray();
    for (int i = 0; i < extractedFromSafeArray.length; i++) {
      assertEquals("" + i, sourceData[i], extractedFromSafeArray[i]);
    }
  }

  /**
   *
   */
  public void testBooleanSafeArray() {
    boolean sourceData[] = new boolean[] { true, false, true, false };
    SafeArray saUnderTest = new SafeArray(Variant.VariantVariant, 3);
    saUnderTest.fromBooleanArray(sourceData);
    boolean[] extractedFromSafeArray = saUnderTest.toBooleanArray();
    for (int i = 0; i < extractedFromSafeArray.length; i++) {
      assertEquals("" + i, sourceData[i], extractedFromSafeArray[i]);
    }
    assertEquals("single get failed: ", sourceData[2], saUnderTest
        .getBoolean(2));

    // test conversion
    Variant extractedFromSafeArrayVariant[] = saUnderTest.toVariantArray();
    for (int i = 0; i < extractedFromSafeArrayVariant.length; i++) {
      assertEquals("" + i, sourceData[i],
          extractedFromSafeArrayVariant[i].getBoolean());
    }
  }

  /**
   *
   */
  public void testCharSafeArray() {
    char sourceData[] = new char[] { 'a', 'b', 'c', 'd' };
    SafeArray saUnderTest = new SafeArray(Variant.VariantVariant, 3);
    saUnderTest.fromCharArray(sourceData);
    char[] extractedFromSafeArray = saUnderTest.toCharArray();
    for (int i = 0; i < extractedFromSafeArray.length; i++) {
      assertEquals("" + i, sourceData[i], extractedFromSafeArray[i]);
    }
    assertEquals("single get failed: ", sourceData[2], saUnderTest
        .getChar(2));

  }

  /**
   *
   */
  public void testStringSaveArray() {
    String sourceData[] = new String[] { "hello", "from", "java", "com" };
    SafeArray saUnderTest = new SafeArray(Variant.VariantVariant, 3);
    saUnderTest.fromStringArray(sourceData);
    String[] extractedFromSafeArray = saUnderTest.toStringArray();
    for (int i = 0; i < extractedFromSafeArray.length; i++) {
      assertEquals("" + i, sourceData[i], extractedFromSafeArray[i]);
    }
    assertEquals("single get failed: ", sourceData[2], saUnderTest
        .getString(2));

    // test conversion
    Variant extractedFromSafeArrayVariant[] = saUnderTest.toVariantArray();
    for (int i = 0; i < extractedFromSafeArrayVariant.length; i++) {
      assertEquals("" + i, sourceData[i],
          extractedFromSafeArrayVariant[i].getString());
    }
  }

  /**
   *
   */
  public void testVariantSafeArray() {
    Variant sourceData[] = new Variant[] { new Variant(1),
        new Variant(2.3), new Variant("hi") };

    SafeArray saUnderTest = new SafeArray(Variant.VariantVariant, 3);
    saUnderTest.fromVariantArray(sourceData);
    Variant[] extractedFromSafeArray = saUnderTest.toVariantArray();
    for (int i = 0; i < extractedFromSafeArray.length; i++) {
      assertEquals("" + i, sourceData[i].toString(),
          extractedFromSafeArray[i].toString());
    }
    assertEquals("single get failed: ", sourceData[2].toString(),
        saUnderTest.getVariant(2).toString());

  }

  /**
   * test method that verifies setting of bounds in multi-dimensional arrays
   */
  public void testSafeArrayNumDimensions() {
    int[] lowerBounds = new int[] { 0, 0, 0 };
    int[] dimensionSizes = new int[] { 3, 3, 3 };

    SafeArray sa3x3 = new SafeArray(Variant.VariantVariant, lowerBounds,
        dimensionSizes);

    System.out.println("Num Dimensions = " + sa3x3.getNumDim());
    for (int safeArrayDimension = 1; safeArrayDimension <= sa3x3
        .getNumDim(); safeArrayDimension++) {
      int configArrayIndex = safeArrayDimension - 1;
      assertEquals("unexpected lower bound value ",
          lowerBounds[configArrayIndex], sa3x3
              .getLBound(safeArrayDimension));
      assertEquals("unexpeced upper bound value ",
          (dimensionSizes[configArrayIndex] - 1)
              + lowerBounds[configArrayIndex], sa3x3
              .getUBound(safeArrayDimension));
    }
  }

  /**
   * test the set and get method on multi-dimensional arrays
   */
  public void testSafeArrayMultiDimension() {

    int[] lowerBounds = new int[] { 0, 0, 0 };
    int[] dimensionSizes = new int[] { 3, 3, 3 };

    SafeArray sa3x3 = new SafeArray(Variant.VariantVariant, lowerBounds,
        dimensionSizes);
    int[] indices = new int[] { 0, 0, 0 };

    for (int i = 0; i < 3; i++) {
      indices[0] = i;
      for (int j = 0; j < 3; j++) {
        indices[1] = j;
        for (int k = 0; k < 3; k++) {
          indices[2] = k;

          int fill = 0;
          fill = i * 100 + j * 10 + k;
          sa3x3.setInt(indices, fill);
          assertEquals(fill, sa3x3.getInt(indices));

          long fillLong = 0L;
          // Pick a number bigger than 2^31
          fillLong = 100000000000000L * fill;
          sa3x3.setLong(indices, fillLong);
          assertEquals(fillLong, sa3x3.getLong(indices));
        }
      }
    }
  }
}
TOP

Related Classes of com.jacob.test.safearray.SafeArrayBasicTest

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.