Package org.pollux3d.gesture

Source Code of org.pollux3d.gesture.GestureSystemTest

package org.pollux3d.gesture;

import java.util.ArrayList;
import java.util.List;

import junit.framework.Assert;

import org.junit.Test;
import org.junit.Before;
import org.pollux3d.tuio.TuioInputListener;

import com.jme3.math.Vector2f;

public class GestureSystemTest{
 
  private GestureSystem gestureSystem;
  private TuioInputListener ti;
  final List<Float> zoomValues = new ArrayList<Float>();
  final List<Vector2f> clickVectors = new ArrayList<Vector2f>();

  @Before
  public void setup() {
    gestureSystem = GestureSystem.get();
    ti = gestureSystem;
    gestureSystem.addListener(new GestureListener() {

      public void click(Vector2f point) {
        clickVectors.add(point);
      }
      public void longClick(Vector2f point) {}
      public void move(Vector2f move) {}
      public void rotate(float angle) {}
      public void up(Vector2f point) {}

      public void zoom(float zoom) {
        zoomValues.add(zoom);
      }
     
    });
    zoomValues.clear();
    clickVectors.clear();
  }
 
  private void printList(List<?> list) {
    for (int i = 0; i<list.size(); i++)
      System.out.println(list.get(i));
  }
 
 
  @Test
  public void testSimpleClick() {
    gestureSystem.update(1);
    ti.onNew(0, 0, 0);
    gestureSystem.update(1);
    ti.onRelease(0);
    gestureSystem.update(1);
    //printList(clickVectors);
    Assert.assertTrue(clickVectors.get(0).equals(new Vector2f(0,0)));
    Assert.assertTrue(zoomValues.isEmpty());
  }
 
  @Test
  public void testClickInterrupt() {
    gestureSystem.update(1);
    ti.onNew(0, 10, 15);
    gestureSystem.update(1);
    ti.onNew(1, 20, 30);
   
    //FIXME: if the onNew and onRelease event is triggered in one update cycle an click event is fired
    //     comment the next line for testing
    gestureSystem.update(1);
   
    ti.onRelease(0);
    gestureSystem.update(1);
    ti.onRelease(1);
    gestureSystem.update(1);
    //printList(clickVectors);
    Assert.assertTrue(clickVectors.isEmpty());
    Assert.assertTrue(zoomValues.isEmpty());
  }
 
  @Test
  public void testClickDoubleUp() {
    gestureSystem.update(1);
    ti.onNew(0, 10, 15);
    gestureSystem.update(1);
    ti.onNew(1, 20, 30);
    gestureSystem.update(1);
    ti.onMove(0, 10, -1, 20, 14);
    ti.onMove(1, 10, 3, 30, 33);
    gestureSystem.update(1);
    ti.onRelease(1);
    ti.onRelease(0);
    gestureSystem.update(1);
    //printList(clickVectors);
    Assert.assertTrue(clickVectors.isEmpty());
  }
 
  @Test
  public void testClickFastDoubleUp() {
    gestureSystem.update(1);
    ti.onNew(0, 10, 15);
    gestureSystem.update(1);
    ti.onNew(1, 20, 30);
    gestureSystem.update(1);
    ti.onMove(0, 10, -1, 20, 14);
    ti.onMove(1, 10, 3, 30, 33);
    ti.onRelease(1);
    ti.onRelease(0);
    gestureSystem.update(1);
    printList(clickVectors);
    Assert.assertTrue(clickVectors.isEmpty());
  }
 
  @Test
  public void TestZoom() {
    ti.onNew(0, 300, 300);
    gestureSystem.update(1);
    ti.onMove(0, -10, -1, 290, 299);
    ti.onNew(1, 350, 300);
    gestureSystem.update(1);
    ti.onMove(0, -10, -1, 280, 298);
    ti.onMove(1, 10, -1, 310, 298);
    gestureSystem.update(1);
    ti.onMove(0, 3, -1, 283, 297);
    ti.onMove(1, -4, -1, 306, 297);
    gestureSystem.update(1);
    ti.onMove(1, -6, -7, 300, 290);
    ti.onRelease(1);
    gestureSystem.update(1);
    ti.onRelease(0);
    gestureSystem.update(1);
    //printList(zoomValues);
    Assert.assertTrue(
        zoomValues.get(0).equals(-20f) &&
        zoomValues.get(1).equals(7f)
    );
    Assert.assertTrue(clickVectors.isEmpty());
  }

}
TOP

Related Classes of org.pollux3d.gesture.GestureSystemTest

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.