123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- package com.jme.animation;
- import com.jme3.animation.CompactVector3Array;
- import com.jme3.export.binary.BinaryExporter;
- import com.jme3.export.binary.BinaryImporter;
- import com.jme3.math.Vector3f;
- import java.io.File;
- import java.io.IOException;
- import java.util.Arrays;
- import static org.junit.Assert.*;
- import org.junit.Before;
- import org.junit.Test;
- public class CompactVector3ArrayTest {
- private final Vector3f[] objArray1 = new Vector3f[] {
- new Vector3f(1, 0, 1), // 0
- new Vector3f(1, 1, 1), // 1
- new Vector3f(0, 1, 1), // 2
- new Vector3f(1, 1, 1), // 1
- new Vector3f(1, 0, 1), // 0
- };
- private final Vector3f[] objArray2 = new Vector3f[] {
- new Vector3f(1, 0, 2), // 3
- new Vector3f(1, 1, 1), // 1
- new Vector3f(0, 1, 1), // 2
- null, // -1
- new Vector3f(1, 0, 2), // 3
- };
- private static final int[] index1 = new int[] {0, 1, 2, 1, 0};
- private static final int[] index2 = new int[] {3, 1, 2, -1, 3};
- private int[] index12;
- private static final float[] serialData = new float[] {1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 2};
-
- CompactVector3Array compact;
- @Before
- public void setUp() throws Exception {
- compact = new CompactVector3Array();
- index12 = Arrays.copyOf(index1, index1.length+index2.length);
- System.arraycopy(index2, 0, index12, index1.length, index2.length);
- }
- @Test
- public void testCompactVector3ArrayAdd() {
- compact.add(objArray1);
- compact.add(objArray2);
- _testAdd();
-
- try {
- compact.freeze();
- compact.add(objArray1);
- fail();
- } catch (Exception e) {
- }
- }
- private void _testAdd() {
- assertTrue(Arrays.equals(compact.getIndex(objArray1), index1));
- assertTrue(Arrays.equals(compact.getIndex(objArray2), index2));
- assertTrue(Arrays.equals(compact.getSerializedData(), serialData));
- }
-
- @Test
- public void testCompactVector3ArrayFloatArrayIntArray() {
- int[] indexArray = index1;
- float[] dataArray = new float[] {1, 0, 1, 1, 1, 1, 0, 1, 1};
- Vector3f[] objArray = new Vector3f[] {
- new Vector3f(1, 0, 1),
- new Vector3f(1, 1, 1),
- new Vector3f(0, 1, 1),
- new Vector3f(1, 1, 1),
- new Vector3f(1, 0, 1),
- };
- CompactVector3Array compact = new CompactVector3Array(dataArray, indexArray);
- assertTrue(Arrays.deepEquals(compact.toObjectArray(), objArray));
- }
-
- @Test
- public void testGetTotalObjectSize() {
- compact.add(objArray1);
- assertTrue(compact.getTotalObjectSize() == 5);
- assertTrue(compact.getCompactObjectSize() == 3);
- compact.add(objArray2);
- _testSize();
- }
- private void _testSize() {
- assertTrue(compact.getTotalObjectSize() == 10);
- assertTrue(compact.getCompactObjectSize() == 4);
- }
-
- @Test
- public void testGet() {
- compact.add(objArray1);
- Vector3f v1 = compact.get(1, new Vector3f());
- assertEquals(new Vector3f(1, 1, 1), v1);
- compact.add(objArray2);
- _testGet();
- }
- private void _testGet() {
- Vector3f v2 = compact.get(1, new Vector3f());
- assertEquals(new Vector3f(1, 1, 1), v2);
- Vector3f v3 = compact.get(5, new Vector3f());
- assertEquals(new Vector3f(1, 0, 2), v3);
- }
-
- @Test
- public void testGetCompactIndex() {
- compact.add(objArray1);
- compact.add(objArray2);
- _testCompactIndex();
- }
- private void _testCompactIndex() {
- for (int i = 0; i < index12.length; i++) {
- assertEquals(index12[i], compact.getCompactIndex(i));
- }
- }
-
- @Test
- public void testGetIndex() {
- compact.add(objArray1);
- compact.add(objArray2);
- _testGetIndex();
- }
- private void _testGetIndex() {
- Vector3f[] reverse = new Vector3f[objArray1.length];
- int[] reverseIndex = new int[objArray1.length];
- for (int i = 0; i < objArray1.length; i++) {
- reverse[i] = objArray1[objArray1.length-1-i];
- reverseIndex[i] = index1[objArray1.length-1-i];
- }
-
- int[] index = compact.getIndex(reverse);
- for (int i = 0; i < index.length; i++) {
- assertEquals(reverseIndex[i], index[i]);
- }
- }
-
- @Test
- public void testRead() throws IOException {
- File file = File.createTempFile("compactArray", "test");
- BinaryImporter importer = new BinaryImporter();
- BinaryExporter exporter = new BinaryExporter();
- compact.add(objArray1);
- compact.add(objArray2);
- exporter.save(compact, file);
- compact = (CompactVector3Array) importer.load(file);
- _testSize();
- _testCompactIndex();
- _testGet();
- file.delete();
- }
- }
|