Example #1
0
  @Test
  public void testConstructors() {

    ArrayFieldVector<Fraction> v0 = new ArrayFieldVector<Fraction>(FractionField.getInstance());
    Assert.assertEquals(0, v0.getDimension());

    ArrayFieldVector<Fraction> v1 = new ArrayFieldVector<Fraction>(FractionField.getInstance(), 7);
    Assert.assertEquals(7, v1.getDimension());
    Assert.assertEquals(new Fraction(0), v1.getEntry(6));

    ArrayFieldVector<Fraction> v2 = new ArrayFieldVector<Fraction>(5, new Fraction(123, 100));
    Assert.assertEquals(5, v2.getDimension());
    Assert.assertEquals(new Fraction(123, 100), v2.getEntry(4));

    ArrayFieldVector<Fraction> v3 =
        new ArrayFieldVector<Fraction>(FractionField.getInstance(), vec1);
    Assert.assertEquals(3, v3.getDimension());
    Assert.assertEquals(new Fraction(2), v3.getEntry(1));

    ArrayFieldVector<Fraction> v4 =
        new ArrayFieldVector<Fraction>(FractionField.getInstance(), vec4, 3, 2);
    Assert.assertEquals(2, v4.getDimension());
    Assert.assertEquals(new Fraction(4), v4.getEntry(0));
    try {
      new ArrayFieldVector<Fraction>(vec4, 8, 3);
      Assert.fail("MathIllegalArgumentException expected");
    } catch (MathIllegalArgumentException ex) {
      // expected behavior
    }

    FieldVector<Fraction> v5_i = new ArrayFieldVector<Fraction>(dvec1);
    Assert.assertEquals(9, v5_i.getDimension());
    Assert.assertEquals(new Fraction(9), v5_i.getEntry(8));

    ArrayFieldVector<Fraction> v5 = new ArrayFieldVector<Fraction>(dvec1);
    Assert.assertEquals(9, v5.getDimension());
    Assert.assertEquals(new Fraction(9), v5.getEntry(8));

    ArrayFieldVector<Fraction> v6 = new ArrayFieldVector<Fraction>(dvec1, 3, 2);
    Assert.assertEquals(2, v6.getDimension());
    Assert.assertEquals(new Fraction(4), v6.getEntry(0));
    try {
      new ArrayFieldVector<Fraction>(dvec1, 8, 3);
      Assert.fail("MathIllegalArgumentException expected");
    } catch (MathIllegalArgumentException ex) {
      // expected behavior
    }

    ArrayFieldVector<Fraction> v7 = new ArrayFieldVector<Fraction>(v1);
    Assert.assertEquals(7, v7.getDimension());
    Assert.assertEquals(new Fraction(0), v7.getEntry(6));

    FieldVectorTestImpl<Fraction> v7_i = new FieldVectorTestImpl<Fraction>(vec1);

    ArrayFieldVector<Fraction> v7_2 = new ArrayFieldVector<Fraction>(v7_i);
    Assert.assertEquals(3, v7_2.getDimension());
    Assert.assertEquals(new Fraction(2), v7_2.getEntry(1));

    ArrayFieldVector<Fraction> v8 = new ArrayFieldVector<Fraction>(v1, true);
    Assert.assertEquals(7, v8.getDimension());
    Assert.assertEquals(new Fraction(0), v8.getEntry(6));
    Assert.assertNotSame("testData not same object ", v1.getDataRef(), v8.getDataRef());

    ArrayFieldVector<Fraction> v8_2 = new ArrayFieldVector<Fraction>(v1, false);
    Assert.assertEquals(7, v8_2.getDimension());
    Assert.assertEquals(new Fraction(0), v8_2.getEntry(6));
    Assert.assertArrayEquals(v1.getDataRef(), v8_2.getDataRef());

    ArrayFieldVector<Fraction> v9 = new ArrayFieldVector<Fraction>(v1, v3);
    Assert.assertEquals(10, v9.getDimension());
    Assert.assertEquals(new Fraction(1), v9.getEntry(7));
  }