    @Test
    public void testMapVertexData() {

        /*
         * Exemple :
         * mesh :   P1\P3----P4
         *            ¦¯\_   ¦
         *            ¦   ¯\_¦
         *           P2----P6\P5
         *
         * with P1==P3 and P6==P5
         * Buffers indexes        :  | 0| 1| 2| 3| 4| 5|
         * >-  JME PositionBuffer :  [P1,P2,P3,P4,P5,P6]
         * >-  JME IndexBuffer    :  [ 0, 1, 5, 2, 4, 3]
         * <-> JME -> Bullet map  :  [ 0, 1, 0, 2, 3, 3]
         *  -> Bullet Positions   :  [P3,P2,P4,P6]       == [P1,P2,P4,P5]
         *  -> Bullet Index       :  [ 0, 1, 3, 0, 3, 2]
         */
        FloatBuffer jmePositions = FloatBuffer.wrap(
                new float[]{
                    1f, 0f, 0f, // P1
                    2f, 0f, 0f, // P2
                    1f, 0f, 0f, // P3 == P1
                    4f, 0f, 0f, // P4
                    5f, 0f, 0f, // P5
                    5f, 0f, 0f, // P6 == P5
                });

        IntBuffer jme2bulletIndexMap = IntBuffer.wrap(
                new int[]{0, 1, 0, 2, 3, 3}
        );

        FloatBuffer bulletPositions = NativeSoftBodyUtil.mapVertexData(
                jme2bulletIndexMap, jmePositions, 3);

        // verification with hand filled values
        verifyIndexMap(jmePositions, jme2bulletIndexMap, bulletPositions);

        jme2bulletIndexMap = NativeSoftBodyUtil.generateIndexMap(jmePositions);
        bulletPositions = NativeSoftBodyUtil.mapVertexData(jme2bulletIndexMap,
                jmePositions, 3);

        // second verification with generated jme2bullet indexMap
        verifyIndexMap(jmePositions, jme2bulletIndexMap, bulletPositions);
    }