Package de.ailis.jollada.model

Source Code of de.ailis.jollada.model.FloatArrayTest

/*
* Copyright (C) 2010 Klaus Reimer <k@ailis.de>
* See LICENSE.txt for licensing information.
*/

package de.ailis.jollada.model;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;

import org.junit.Test;

import de.ailis.jollada.model.FloatArray;


/**
* Tests the FloatArray class.
*
* @author Klaus Reimer (k@ailis.de)
*/

public class FloatArrayTest
{
    /**
     * Tests the constructor.
     */

    @Test
    public void testConstructor()
    {
        final FloatArray array = new FloatArray(16);
        assertEquals(16, array.getCount());
        assertNull(array.getId());
        assertNull(array.getName());
        assertEquals(38, array.getMagnitude());
        assertEquals(6, array.getDigits());
    }


    /**
     * Tests the constructor with a negative count.
     */

    @Test(expected = IllegalArgumentException.class)
    public void testConstructorNegativeCount()
    {
        new FloatArray(-1).toString();
    }


    /**
     * Tests the setCount() method.
     */

    @Test
    public void testSetCount()
    {
        final FloatArray array = new FloatArray(4);
        array.setValue(0, 1);
        array.setValue(1, 2);
        array.setValue(2, 3);
        array.setValue(3, 4);
        array.setCount(6);
        assertEquals(6, array.getCount());
        assertEquals(1, array.getValue(0), 0.001f);
        assertEquals(2, array.getValue(1), 0.001f);
        assertEquals(3, array.getValue(2), 0.001f);
        assertEquals(4, array.getValue(3), 0.001f);
        array.setCount(2);
        assertEquals(2, array.getCount());
        assertEquals(1, array.getValue(0), 0.001f);
        assertEquals(2, array.getValue(1), 0.001f);
    }


    /**
     * Tests the name.
     */

    @Test
    public void testName()
    {
        final FloatArray array = new FloatArray(4);
        assertNull(array.getName());
        array.setName("foo");
        assertEquals("foo", array.getName());
        array.setName(null);
        assertNull(array.getName());
    }


    /**
     * Tests the ID.
     */

    @Test
    public void testId()
    {
        final FloatArray array = new FloatArray(4);
        assertNull(array.getId());
        array.setId("foo");
        assertEquals("foo", array.getId());
        array.setId(null);
        assertNull(array.getId());
    }


    /**
     * Tests the minInclusive.
     */

    @Test
    public void testSetDigits()
    {
        final FloatArray array = new FloatArray(4);
        array.setDigits(3);
        assertEquals(3, array.getDigits());
    }


    /**
     * Tests the maxInclusive.
     */

    @Test
    public void testSetMagnitude()
    {
        final FloatArray array = new FloatArray(4);
        array.setMagnitude(40);
        assertEquals(40, array.getMagnitude());
    }


    /**
     * Tests setting a too high magnitude.
     */

    @Test(expected = IllegalArgumentException.class)
    public void testSetMagnitudeTooHigh()
    {
        new FloatArray(0).setMagnitude(0x8000);
    }


    /**
     * Tests setting a too high digits.
     */

    @Test(expected = IllegalArgumentException.class)
    public void testSetDigitsTooHigh()
    {
        new FloatArray(0).setDigits(0x8000);
    }


    /**
     * Tests setting a too low digits.
     */

    @Test(expected = IllegalArgumentException.class)
    public void testSetDigitsTooLow()
    {
        new FloatArray(0).setDigits(-1);
    }


    /**
     * Tests setting a too low magnitude.
     */

    @Test(expected = IllegalArgumentException.class)
    public void testSetMagnitudeTooLow()
    {
        new FloatArray(0).setMagnitude(-1);
    }



    /**
     * Tests getting values.
     */

    @Test
    public void testGetValues()
    {
        final FloatArray array = new FloatArray(4);
        array.setValue(0, 1);
        array.setValue(1, 2);
        array.setValue(2, 3);
        array.setValue(3, 4);

        // Test getting copy of values
        double[] values = array.getValues();
        assertEquals(1, values[0], 0.001f);
        assertEquals(2, values[1], 0.001f);
        assertEquals(3, values[2], 0.001f);
        assertEquals(4, values[3], 0.001f);

        // Test filling array with values
        values = new double[4];
        array.getValues(values);
        assertEquals(1, values[0], 0.001f);
        assertEquals(2, values[1], 0.001f);
        assertEquals(3, values[2], 0.001f);
        assertEquals(4, values[3], 0.001f);

        // Test getting subset of array
        values = new double[4];
        array.getValues(1, 2, values);
        assertEquals(2, values[0], 0.001f);
        assertEquals(3, values[1], 0.001f);
        assertEquals(0, values[2], 0.001f);
        assertEquals(0, values[3], 0.001f);

        // Test getting subset of array and writing to specific offset
        values = new double[4];
        array.getValues(1, 2, values, 1);
        assertEquals(0, values[0], 0.001f);
        assertEquals(2, values[1], 0.001f);
        assertEquals(3, values[2], 0.001f);
        assertEquals(0, values[3], 0.001f);
    }


    /**
     * Tests setting values.
     */

    @Test
    public void testSetValues()
    {
        final FloatArray array = new FloatArray(4);
        final double[] values = new double[] { 1, 2, 3, 4 };
        array.setValues(values);
        assertEquals(1, array.getValue(0), 0.001f);
        assertEquals(2, array.getValue(1), 0.001f);
        assertEquals(3, array.getValue(2), 0.001f);
        assertEquals(4, array.getValue(3), 0.001f);

        array.setValues(1, 2, values);
        assertEquals(1, array.getValue(0), 0.001f);
        assertEquals(1, array.getValue(1), 0.001f);
        assertEquals(2, array.getValue(2), 0.001f);
        assertEquals(4, array.getValue(3), 0.001f);

        array.setValues(1, 2, values, 1);
        assertEquals(1, array.getValue(0), 0.001f);
        assertEquals(2, array.getValue(1), 0.001f);
        assertEquals(3, array.getValue(2), 0.001f);
        assertEquals(4, array.getValue(3), 0.001f);
    }
}
TOP

Related Classes of de.ailis.jollada.model.FloatArrayTest

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.