X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali%2Futc-Dali-PanGestureDetector.cpp;h=0767ab2dc64efd100a85285ac8acb62e868d85ad;hb=8193c927d96f85f916f5c15fccb508415193ab9b;hp=887ce239043e69559fde82ef9ff966ed59659081;hpb=9d3d4965d110517e962a608ec6413612a9e57ccc;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/automated-tests/src/dali/utc-Dali-PanGestureDetector.cpp b/automated-tests/src/dali/utc-Dali-PanGestureDetector.cpp index 887ce23..0767ab2 100644 --- a/automated-tests/src/dali/utc-Dali-PanGestureDetector.cpp +++ b/automated-tests/src/dali/utc-Dali-PanGestureDetector.cpp @@ -43,8 +43,6 @@ void utc_dali_pan_gesture_detector_cleanup(void) /////////////////////////////////////////////////////////////////////////////// namespace { -typedef Dali::PanGestureDetector::AngleContainer::size_type AngleSizeType; - const int PAN_EVENT_TIME_DELTA = 8; const int PAN_GESTURE_UPDATE_COUNT = 50; @@ -69,7 +67,7 @@ struct SignalData receivedGesture.screenPosition = Vector2(0.0f, 0.0f); receivedGesture.numberOfTouches = 0; - pannedActor = NULL; + pannedActor.Reset(); } bool functorCalled; @@ -83,7 +81,7 @@ struct GestureReceivedFunctor { GestureReceivedFunctor(SignalData& data) : signalData(data) { } - void operator()(Actor actor, PanGesture pan) + void operator()(Actor actor, const PanGesture& pan) { signalData.functorCalled = true; signalData.receivedGesture = pan; @@ -107,7 +105,7 @@ struct UnstageActorFunctor : public GestureReceivedFunctor { } - void operator()( Actor actor, PanGesture pan ) + void operator()( Actor actor, const PanGesture& pan ) { GestureReceivedFunctor::operator()( actor, pan ); @@ -133,7 +131,8 @@ struct TouchEventFunctor struct ConstraintData { ConstraintData() - : called(false) + : panning( false ), + called( false ) { } @@ -143,11 +142,13 @@ struct ConstraintData Vector2 localPosition; Vector2 localDisplacement; Vector2 localVelocity; + bool panning; bool called; void Reset() { screenPosition = screenDisplacement = screenVelocity = localPosition = localDisplacement = localVelocity = Vector2::ZERO; + panning = false; called = false; } }; @@ -157,22 +158,17 @@ struct PanConstraint { PanConstraint( ConstraintData& data ) : constraintData(data) { } - Vector3 operator()(const Vector3& current, - const PropertyInput& screenPositionProperty, - const PropertyInput& screenDisplacementProperty, - const PropertyInput& screenVelocityProperty, - const PropertyInput& localPositionProperty, - const PropertyInput& localDisplacementProperty, - const PropertyInput& localVelocityProperty) + void operator()( Vector3& current, const PropertyInputContainer& inputs ) { - constraintData.screenPosition = screenPositionProperty.GetVector2(); - constraintData.screenDisplacement = screenDisplacementProperty.GetVector2(); - constraintData.screenVelocity = screenVelocityProperty.GetVector2(); - constraintData.localPosition = localPositionProperty.GetVector2(); - constraintData.localDisplacement = localDisplacementProperty.GetVector2(); - constraintData.localVelocity = localVelocityProperty.GetVector2(); + constraintData.screenPosition = inputs[0]->GetVector2(); + constraintData.screenDisplacement = inputs[1]->GetVector2(); + constraintData.screenVelocity = inputs[2]->GetVector2(); + constraintData.localPosition = inputs[3]->GetVector2(); + constraintData.localDisplacement = inputs[4]->GetVector2(); + constraintData.localVelocity = inputs[5]->GetVector2(); + constraintData.panning = inputs[6]->GetBoolean(); constraintData.called = true; - return Vector3::ZERO; + current = Vector3::ZERO; } ConstraintData& constraintData; @@ -253,28 +249,36 @@ static void SendPan(TestApplication& application, Gesture::State state, const Ve LastTime += PAN_EVENT_TIME_DELTA; } -static Vector2 PerformSwipeGestureSwipe(TestApplication& application, Vector2 start, Vector2 direction, int frames, bool finish = true) +static Vector2 PerformSwipeGestureSwipe(TestApplication& application, Vector2 startPosition, Vector2 direction, int frames, int eventsPerFrame, + bool start, bool finish, unsigned int renderInterval = TestApplication::DEFAULT_RENDER_INTERVAL) { // Now do a pan starting from (start) and heading (direction) - Vector2 pos(start); - SendPan(application, Gesture::Possible, pos); - SendPan(application, Gesture::Started, pos); - application.SendNotification(); - application.Render(); + Vector2 pos(startPosition); + + if( start ) + { + SendPan(application, Gesture::Possible, pos); + SendPan(application, Gesture::Started, pos); + application.SendNotification(); + application.Render(renderInterval); + } for(int i = 0;i(1), TEST_LOCATION ); - for ( PanGestureDetector::AngleContainer::const_iterator iter = angles.begin(), endIter = angles.end(); iter != endIter; ++iter ) + DALI_TEST_EQUALS( detector.GetAngleCount(), 1u, TEST_LOCATION ); + bool found = false; + for( size_t i = 0; i < detector.GetAngleCount(); i++) { - if ( iter->first == PanGestureDetector::DIRECTION_LEFT ) + if( detector.GetAngle(i).first == PanGestureDetector::DIRECTION_LEFT ) { tet_result( TET_PASS ); + found = true; break; } + } - if ( iter == endIter ) - { - tet_printf("%s, angle not added\n", TEST_LOCATION ); - tet_result( TET_FAIL ); - } + if(!found ) + { + tet_printf("%s, angle not added\n", TEST_LOCATION ); + tet_result( TET_FAIL ); } detector.AddAngle( PanGestureDetector::DIRECTION_RIGHT, Radian( Math::PI * 0.25 ) ); - DALI_TEST_EQUALS( angles.size(), static_cast(2), TEST_LOCATION ); + DALI_TEST_EQUALS( detector.GetAngleCount(), 2u, TEST_LOCATION ); // Remove something not in the container. detector.RemoveAngle( PanGestureDetector::DIRECTION_UP ); - DALI_TEST_EQUALS( angles.size(), static_cast(2), TEST_LOCATION ); + DALI_TEST_EQUALS( detector.GetAngleCount(), 2u, TEST_LOCATION ); detector.RemoveAngle( PanGestureDetector::DIRECTION_RIGHT ); - DALI_TEST_EQUALS( angles.size(), static_cast(1), TEST_LOCATION ); - for ( PanGestureDetector::AngleContainer::const_iterator iter = angles.begin(), endIter = angles.end(); iter != endIter; ++iter ) + DALI_TEST_EQUALS( detector.GetAngleCount(), 1u, TEST_LOCATION ); + for ( size_t i = 0; i < detector.GetAngleCount(); i++) { - if ( iter->first == PanGestureDetector::DIRECTION_RIGHT ) + if ( detector.GetAngle(i).first == PanGestureDetector::DIRECTION_RIGHT ) { tet_printf("%s, angle not removed\n", TEST_LOCATION ); tet_result( TET_FAIL ); @@ -1764,7 +1796,34 @@ int UtcDaliPanGestureAngleHandling(void) } detector.ClearAngles(); - DALI_TEST_EQUALS( angles.size(), static_cast(0), TEST_LOCATION ); + DALI_TEST_EQUALS( detector.GetAngleCount(), 0u, TEST_LOCATION ); + END_TEST; +} + +int UtcDaliPanGestureGetAngle(void) +{ + TestApplication application; + + PanGestureDetector detector = PanGestureDetector::New(); + DALI_TEST_EQUALS( detector.GetAngleCount(), 0, TEST_LOCATION ); + + detector.AddAngle( PanGestureDetector::DIRECTION_LEFT ); + DALI_TEST_EQUALS( detector.GetAngleCount(), 1, TEST_LOCATION ); + + detector.AddAngle( PanGestureDetector::DIRECTION_RIGHT ); + DALI_TEST_EQUALS( detector.GetAngleCount(), 2, TEST_LOCATION ); + + detector.AddAngle( PanGestureDetector::DIRECTION_UP ); + DALI_TEST_EQUALS( detector.GetAngleCount(), 3, TEST_LOCATION ); + + detector.AddAngle( PanGestureDetector::DIRECTION_DOWN ); + DALI_TEST_EQUALS( detector.GetAngleCount(), 4, TEST_LOCATION ); + + DALI_TEST_EQUALS( detector.GetAngle(0).first, PanGestureDetector::DIRECTION_LEFT, TEST_LOCATION ); + DALI_TEST_EQUALS( detector.GetAngle(1).first, PanGestureDetector::DIRECTION_RIGHT, TEST_LOCATION ); + DALI_TEST_EQUALS( detector.GetAngle(2).first, PanGestureDetector::DIRECTION_UP, TEST_LOCATION ); + DALI_TEST_EQUALS( detector.GetAngle(3).first, PanGestureDetector::DIRECTION_DOWN, TEST_LOCATION ); + END_TEST; } @@ -1778,39 +1837,38 @@ int UtcDaliPanGestureAngleOutOfRange(void) TestApplication application; PanGestureDetector detector = PanGestureDetector::New(); - const PanGestureDetector::AngleContainer& angles( detector.GetAngles() ); - DALI_TEST_EQUALS( angles.empty(), true, TEST_LOCATION ); + DALI_TEST_EQUALS( detector.GetAngleCount(), 0u, TEST_LOCATION ); // // Angle // detector.AddAngle( Degree(180.0f) ); - DALI_TEST_EQUALS( angles.begin()->first, Radian( Degree(-180.0f) ), 0.000001, TEST_LOCATION ); + DALI_TEST_EQUALS( detector.GetAngle(0).first, Radian( Degree(-180.0f) ), 0.000001, TEST_LOCATION ); detector.ClearAngles(); detector.AddAngle( Degree(190.0f) ); - DALI_TEST_EQUALS( angles.begin()->first, Radian( Degree(-170.0f) ), 0.000001, TEST_LOCATION ); + DALI_TEST_EQUALS( detector.GetAngle(0).first, Radian( Degree(-170.0f) ), 0.000001, TEST_LOCATION ); detector.ClearAngles(); detector.AddAngle( Degree(-190.0f) ); - DALI_TEST_EQUALS( angles.begin()->first, Radian( Degree(170.0f) ), 0.000001, TEST_LOCATION ); + DALI_TEST_EQUALS( detector.GetAngle(0).first, Radian( Degree(170.0f) ), 0.000001, TEST_LOCATION ); detector.ClearAngles(); detector.AddAngle( Degree(350.0f) ); - DALI_TEST_EQUALS( angles.begin()->first, Radian( Degree(-10.0f) ), 0.000001, TEST_LOCATION ); + DALI_TEST_EQUALS( detector.GetAngle(0).first, Radian( Degree(-10.0f) ), 0.000001, TEST_LOCATION ); detector.ClearAngles(); detector.AddAngle( Degree(-350.0f) ); - DALI_TEST_EQUALS( angles.begin()->first, Radian( Degree(10.0f) ), 0.000001, TEST_LOCATION ); + DALI_TEST_EQUALS( detector.GetAngle(0).first, Radian( Degree(10.0f) ), 0.000001, TEST_LOCATION ); detector.ClearAngles(); detector.AddAngle( Degree(370.0f) ); - DALI_TEST_EQUALS( angles.begin()->first, Radian( Degree(10.0f) ), 0.000001, TEST_LOCATION ); + DALI_TEST_EQUALS( detector.GetAngle(0).first, Radian( Degree(10.0f) ), 0.000001, TEST_LOCATION ); detector.ClearAngles(); detector.AddAngle( Degree(-370.0f) ); - DALI_TEST_EQUALS( angles.begin()->first, Radian( Degree(-10.0f) ), 0.000001, TEST_LOCATION ); + DALI_TEST_EQUALS( detector.GetAngle(0).first, Radian( Degree(-10.0f) ), 0.000001, TEST_LOCATION ); detector.ClearAngles(); // @@ -1818,19 +1876,19 @@ int UtcDaliPanGestureAngleOutOfRange(void) // detector.AddAngle( PanGestureDetector::DIRECTION_RIGHT, Degree( 0.0f ) ); - DALI_TEST_EQUALS( angles.begin()->second, Radian( Degree(0.0f) ), 0.000001, TEST_LOCATION ); + DALI_TEST_EQUALS( detector.GetAngle(0).second, Radian( Degree(0.0f) ), 0.000001, TEST_LOCATION ); detector.ClearAngles(); detector.AddAngle( PanGestureDetector::DIRECTION_RIGHT, Degree( -10.0f ) ); - DALI_TEST_EQUALS( angles.begin()->second, Radian( Degree(10.0f) ), 0.000001, TEST_LOCATION ); + DALI_TEST_EQUALS( detector.GetAngle(0).second, Radian( Degree(10.0f) ), 0.000001, TEST_LOCATION ); detector.ClearAngles(); detector.AddAngle( PanGestureDetector::DIRECTION_RIGHT, Degree( -181.0f ) ); - DALI_TEST_EQUALS( angles.begin()->second, Radian( Degree(180.0f) ), 0.000001, TEST_LOCATION ); + DALI_TEST_EQUALS( detector.GetAngle(0).second, Radian( Degree(180.0f) ), 0.000001, TEST_LOCATION ); detector.ClearAngles(); detector.AddAngle( PanGestureDetector::DIRECTION_RIGHT, Degree( 181.0f ) ); - DALI_TEST_EQUALS( angles.begin()->second, Radian( Degree(180.0f) ), 0.000001, TEST_LOCATION ); + DALI_TEST_EQUALS( detector.GetAngle(0).second, Radian( Degree(180.0f) ), 0.000001, TEST_LOCATION ); detector.ClearAngles(); END_TEST; } @@ -1912,47 +1970,51 @@ int UtcDaliPanGestureDirectionHandling(void) TestApplication application; PanGestureDetector detector = PanGestureDetector::New(); - const PanGestureDetector::AngleContainer& angles( detector.GetAngles() ); - DALI_TEST_EQUALS( angles.empty(), true, TEST_LOCATION ); + DALI_TEST_EQUALS( detector.GetAngleCount(), 0u, TEST_LOCATION ); detector.AddDirection( PanGestureDetector::DIRECTION_LEFT, Radian( Math::PI * 0.25 ) ); - DALI_TEST_EQUALS( angles.size(), static_cast(2), TEST_LOCATION ); - for ( PanGestureDetector::AngleContainer::const_iterator iter = angles.begin(), endIter = angles.end(); iter != endIter; ++iter ) + DALI_TEST_EQUALS( detector.GetAngleCount(), 2u, TEST_LOCATION ); + bool found = false; + for ( size_t i = 0; detector.GetAngleCount(); i++) { - if ( iter->first == PanGestureDetector::DIRECTION_LEFT ) + if ( detector.GetAngle(i).first == PanGestureDetector::DIRECTION_LEFT ) { tet_result( TET_PASS ); + found = true; break; } - if ( iter == endIter ) - { - tet_printf("%s, angle not added\n", TEST_LOCATION ); - tet_result( TET_FAIL ); - } } - for ( PanGestureDetector::AngleContainer::const_iterator iter = angles.begin(), endIter = angles.end(); iter != endIter; ++iter ) + if (!found ) + { + tet_printf("%s, angle not added\n", TEST_LOCATION ); + tet_result( TET_FAIL ); + } + + found = false; + for( size_t i = 0; i < detector.GetAngleCount(); i++) { - if ( iter->first == PanGestureDetector::DIRECTION_RIGHT ) + if( detector.GetAngle(i).first == PanGestureDetector::DIRECTION_RIGHT ) { tet_result( TET_PASS ); + found = true; break; } + } - if ( iter == endIter ) - { - tet_printf("%s, angle not added\n", TEST_LOCATION ); - tet_result( TET_FAIL ); - } + if(!found ) + { + tet_printf("%s, angle not added\n", TEST_LOCATION ); + tet_result( TET_FAIL ); } // Remove something not in the container. detector.RemoveDirection( PanGestureDetector::DIRECTION_UP ); - DALI_TEST_EQUALS( angles.size(), static_cast(2), TEST_LOCATION ); + DALI_TEST_EQUALS( detector.GetAngleCount(), 2u, TEST_LOCATION ); detector.RemoveDirection( PanGestureDetector::DIRECTION_RIGHT ); - DALI_TEST_EQUALS( angles.size(), static_cast(0), TEST_LOCATION ); + DALI_TEST_EQUALS( detector.GetAngleCount(), 0u, TEST_LOCATION ); END_TEST; } @@ -2085,13 +2147,15 @@ int UtcDaliPanGestureNoPredictionNoSmoothing(void) Property::Index property = actor.RegisterProperty( "Dummy Property", Vector3::ZERO ); ConstraintData constraintData; - actor.ApplyConstraint( Constraint::New( property, Source( detector, PanGestureDetector::SCREEN_POSITION ), - Source( detector, PanGestureDetector::SCREEN_DISPLACEMENT ), - Source( detector, PanGestureDetector::SCREEN_VELOCITY ), - Source( detector, PanGestureDetector::LOCAL_POSITION ), - Source( detector, PanGestureDetector::LOCAL_DISPLACEMENT ), - Source( detector, PanGestureDetector::LOCAL_VELOCITY ), - PanConstraint( constraintData ) ) ); + Constraint constraint = Constraint::New( actor, property, PanConstraint( constraintData ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::SCREEN_POSITION ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::SCREEN_DISPLACEMENT ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::SCREEN_VELOCITY ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::LOCAL_POSITION ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::LOCAL_DISPLACEMENT ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::LOCAL_VELOCITY ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::PANNING ) ); + constraint.Apply(); // Render and notify application.SendNotification(); @@ -2099,7 +2163,7 @@ int UtcDaliPanGestureNoPredictionNoSmoothing(void) Vector2 direction(Vector2::XAXIS * -5.0f); Vector2 startPosition( 1.0f, 1.0f ); - PerformSwipeGestureSwipe(application, startPosition, direction, PAN_GESTURE_UPDATE_COUNT, true); + PerformSwipeGestureSwipe(application, startPosition, direction, PAN_GESTURE_UPDATE_COUNT, 1, true, true); DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); DALI_TEST_EQUALS( constraintData.called, true, TEST_LOCATION ); DALI_TEST_EQUALS( constraintData.screenPosition, startPosition + (direction * PAN_GESTURE_UPDATE_COUNT), 0.1f, TEST_LOCATION ); @@ -2130,13 +2194,15 @@ int UtcDaliPanGestureNoPredictionSmoothing(void) Property::Index property = actor.RegisterProperty( "Dummy Property", Vector3::ZERO ); ConstraintData constraintData; - actor.ApplyConstraint( Constraint::New( property, Source( detector, PanGestureDetector::SCREEN_POSITION ), - Source( detector, PanGestureDetector::SCREEN_DISPLACEMENT ), - Source( detector, PanGestureDetector::SCREEN_VELOCITY ), - Source( detector, PanGestureDetector::LOCAL_POSITION ), - Source( detector, PanGestureDetector::LOCAL_DISPLACEMENT ), - Source( detector, PanGestureDetector::LOCAL_VELOCITY ), - PanConstraint( constraintData ) ) ); + Constraint constraint = Constraint::New( actor, property, PanConstraint( constraintData ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::SCREEN_POSITION ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::SCREEN_DISPLACEMENT ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::SCREEN_VELOCITY ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::LOCAL_POSITION ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::LOCAL_DISPLACEMENT ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::LOCAL_VELOCITY ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::PANNING ) ); + constraint.Apply(); // Render and notify application.SendNotification(); @@ -2145,11 +2211,12 @@ int UtcDaliPanGestureNoPredictionSmoothing(void) Vector2 direction(Vector2::XAXIS * -5.0f); Vector2 previousPosition( 20.0f, 20.0f ); Vector2 currentPosition( 20.0f, 10.0f ); - PerformSwipeGestureSwipe(application, Vector2(1.0f, 1.0f), direction, PAN_GESTURE_UPDATE_COUNT, true); + PerformSwipeGestureSwipe(application, Vector2(1.0f, 1.0f), direction, PAN_GESTURE_UPDATE_COUNT, 1, true, true); DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); DALI_TEST_EQUALS( constraintData.called, true, TEST_LOCATION ); - DALI_TEST_EQUALS( constraintData.screenPosition, Vector2(1.0f, 1.0f) + (direction * PAN_GESTURE_UPDATE_COUNT), 0.1f, TEST_LOCATION ); - DALI_TEST_EQUALS( constraintData.localPosition, Vector2(1.0f, 1.0f) + (direction * PAN_GESTURE_UPDATE_COUNT), 0.1f, TEST_LOCATION ); + // Take into account resampling done when prediction is off. + DALI_TEST_EQUALS( constraintData.screenPosition, Vector2(1.0f, 1.0f) + (direction * (PAN_GESTURE_UPDATE_COUNT - 0.25f)), 0.15f, TEST_LOCATION ); + DALI_TEST_EQUALS( constraintData.localPosition, Vector2(1.0f, 1.0f) + (direction * (PAN_GESTURE_UPDATE_COUNT - 0.25f)), 0.15f, TEST_LOCATION ); constraintData.Reset(); END_TEST; @@ -2176,22 +2243,24 @@ int UtcDaliPanGesturePredictionNoSmoothing(void) Property::Index property = actor.RegisterProperty( "Dummy Property", Vector3::ZERO ); ConstraintData constraintData; - actor.ApplyConstraint( Constraint::New( property, Source( detector, PanGestureDetector::SCREEN_POSITION ), - Source( detector, PanGestureDetector::SCREEN_DISPLACEMENT ), - Source( detector, PanGestureDetector::SCREEN_VELOCITY ), - Source( detector, PanGestureDetector::LOCAL_POSITION ), - Source( detector, PanGestureDetector::LOCAL_DISPLACEMENT ), - Source( detector, PanGestureDetector::LOCAL_VELOCITY ), - PanConstraint( constraintData ) ) ); + Constraint constraint = Constraint::New( actor, property, PanConstraint( constraintData ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::SCREEN_POSITION ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::SCREEN_DISPLACEMENT ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::SCREEN_VELOCITY ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::LOCAL_POSITION ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::LOCAL_DISPLACEMENT ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::LOCAL_VELOCITY ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::PANNING ) ); + constraint.Apply(); // Render and notify application.SendNotification(); application.Render(); - Vector2 direction(Vector2::XAXIS * -5.0f); + Vector2 direction(Vector2::XAXIS * -1.0f); Vector2 previousPosition( 20.0f, 20.0f ); Vector2 currentPosition( 20.0f, 10.0f ); - PerformSwipeGestureSwipe(application, Vector2(1.0f, 1.0f), direction, PAN_GESTURE_UPDATE_COUNT, true); + PerformSwipeGestureSwipe(application, Vector2(1.0f, 1.0f), direction, PAN_GESTURE_UPDATE_COUNT, 1, true, true); DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); DALI_TEST_EQUALS( constraintData.called, true, TEST_LOCATION ); DALI_TEST_EQUALS( constraintData.screenPosition, Vector2(1.0f, 1.0f) + (direction * PAN_GESTURE_UPDATE_COUNT), 10.0f, TEST_LOCATION ); @@ -2201,7 +2270,7 @@ int UtcDaliPanGesturePredictionNoSmoothing(void) END_TEST; } -int UtcDaliPanGesturePredictionSmoothing(void) +int UtcDaliPanGesturePredictionSmoothing01(void) { TestApplication application; Integration::SetPanGesturePredictionMode(1); @@ -2222,22 +2291,24 @@ int UtcDaliPanGesturePredictionSmoothing(void) Property::Index property = actor.RegisterProperty( "Dummy Property", Vector3::ZERO ); ConstraintData constraintData; - actor.ApplyConstraint( Constraint::New( property, Source( detector, PanGestureDetector::SCREEN_POSITION ), - Source( detector, PanGestureDetector::SCREEN_DISPLACEMENT ), - Source( detector, PanGestureDetector::SCREEN_VELOCITY ), - Source( detector, PanGestureDetector::LOCAL_POSITION ), - Source( detector, PanGestureDetector::LOCAL_DISPLACEMENT ), - Source( detector, PanGestureDetector::LOCAL_VELOCITY ), - PanConstraint( constraintData ) ) ); + Constraint constraint = Constraint::New( actor, property, PanConstraint( constraintData ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::SCREEN_POSITION ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::SCREEN_DISPLACEMENT ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::SCREEN_VELOCITY ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::LOCAL_POSITION ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::LOCAL_DISPLACEMENT ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::LOCAL_VELOCITY ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::PANNING ) ); + constraint.Apply(); // Render and notify application.SendNotification(); application.Render(); - Vector2 direction(Vector2::XAXIS * -5.0f); + Vector2 direction(Vector2::XAXIS * -1.0f); Vector2 previousPosition( 20.0f, 20.0f ); Vector2 currentPosition( 20.0f, 10.0f ); - PerformSwipeGestureSwipe(application, Vector2(1.0f, 1.0f), direction, PAN_GESTURE_UPDATE_COUNT, true); + PerformSwipeGestureSwipe(application, Vector2(1.0f, 1.0f), direction, PAN_GESTURE_UPDATE_COUNT, 1, true, true); DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); DALI_TEST_EQUALS( constraintData.called, true, TEST_LOCATION ); DALI_TEST_EQUALS( constraintData.screenPosition, Vector2(1.0f, 1.0f) + (direction * PAN_GESTURE_UPDATE_COUNT), 10.0f, TEST_LOCATION ); @@ -2247,6 +2318,237 @@ int UtcDaliPanGesturePredictionSmoothing(void) END_TEST; } +int UtcDaliPanGesturePredictionSmoothing02(void) +{ + TestApplication application; + Integration::SetPanGesturePredictionMode( 1 ); + Integration::SetPanGestureMaximumPredictionAmount( 1 ); + Integration::SetPanGesturePredictionAmountAdjustment( 2 ); + Integration::SetPanGestureSmoothingMode( 1 ); + Integration::SetPanGestureSmoothingAmount( 0.25f ); + + Actor actor = Actor::New(); + actor.SetSize(100.0f, 100.0f); + actor.SetAnchorPoint(AnchorPoint::TOP_LEFT); + Stage::GetCurrent().Add(actor); + + // Add a pan detector + PanGestureDetector detector = PanGestureDetector::New(); + detector.Attach( actor ); + SignalData data; + GestureReceivedFunctor functor( data ); + detector.DetectedSignal().Connect( &application, functor ); + + Property::Index property = actor.RegisterProperty( "Dummy Property", Vector3::ZERO ); + + ConstraintData constraintData; + Constraint constraint = Constraint::New( actor, property, PanConstraint( constraintData ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::SCREEN_POSITION ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::SCREEN_DISPLACEMENT ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::SCREEN_VELOCITY ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::LOCAL_POSITION ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::LOCAL_DISPLACEMENT ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::LOCAL_VELOCITY ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::PANNING ) ); + constraint.Apply(); + + // Render and notify + application.SendNotification(); + application.Render(); + + Vector2 directionX(Vector2::XAXIS); + Vector2 directionY(Vector2::YAXIS); + Vector2 position = PerformSwipeGestureSwipe(application, Vector2(2.0f, 2.0f), directionX, 10, 1, true, false); + position = PerformSwipeGestureSwipe(application, position, directionX * 10.0f, 1, 1, false, false); + position = PerformSwipeGestureSwipe(application, position, directionX * -1.0f, 2, 1, false, false); + position = PerformSwipeGestureSwipe(application, position, directionX, 10, 1, false, true); + position = PerformSwipeGestureSwipe(application, position, directionY, 10, 1, true, false); + position = PerformSwipeGestureSwipe(application, position, directionY * -1.0f, 2, 1, false, false); + position = PerformSwipeGestureSwipe(application, position, directionY, 10, 1, false, true); + DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); + DALI_TEST_EQUALS( constraintData.called, true, TEST_LOCATION ); + DALI_TEST_EQUALS( constraintData.screenPosition, Vector2(2.0f, 2.0f) + position, 10.0f, TEST_LOCATION ); + DALI_TEST_EQUALS( constraintData.localPosition, Vector2(2.0f, 2.0f) + position, 10.0f, TEST_LOCATION ); + + constraintData.Reset(); + END_TEST; +} + +int UtcDaliPanGesturePrediction2SmoothingMultiTap01(void) +{ + TestApplication application; + + Integration::SetPanGesturePredictionMode( 2 ); + Integration::SetPanGesturePredictionAmount( 57 ); + Integration::SetPanGestureSmoothingMode( 2 ); + Integration::SetPanGestureUseActualTimes( false ); + Integration::SetPanGestureInterpolationTimeRange( 10 ); + Integration::SetPanGestureScalarOnlyPredictionEnabled( false ); + Integration::SetPanGestureTwoPointPredictionEnabled( true ); + Integration::SetPanGestureTwoPointInterpolatePastTime( 42 ); + Integration::SetPanGestureTwoPointVelocityBias( 0.35f ); + Integration::SetPanGestureTwoPointAccelerationBias( 0.10f ); + Integration::SetPanGestureMultitapSmoothingRange( 34 ); + + Actor actor = Actor::New(); + actor.SetSize(100.0f, 100.0f); + actor.SetAnchorPoint(AnchorPoint::TOP_LEFT); + Stage::GetCurrent().Add(actor); + + // Add a pan detector + PanGestureDetector detector = PanGestureDetector::New(); + detector.Attach( actor ); + SignalData data; + GestureReceivedFunctor functor( data ); + detector.DetectedSignal().Connect( &application, functor ); + + Property::Index property = actor.RegisterProperty( "Dummy Property", Vector3::ZERO ); + + ConstraintData constraintData; + Constraint constraint = Constraint::New( actor, property, PanConstraint( constraintData ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::SCREEN_POSITION ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::SCREEN_DISPLACEMENT ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::SCREEN_VELOCITY ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::LOCAL_POSITION ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::LOCAL_DISPLACEMENT ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::LOCAL_VELOCITY ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::PANNING ) ); + constraint.Apply(); + + // Render and notify + application.SendNotification(); + application.Render(); + + Vector2 direction(Vector2::XAXIS * -1.0f); + Vector2 position = PerformSwipeGestureSwipe(application, Vector2(2.0f, 2.0f), direction, 10, 1, true, true); + DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); + DALI_TEST_EQUALS( constraintData.called, true, TEST_LOCATION ); + DALI_TEST_EQUALS( constraintData.screenPosition, Vector2(2.0f, 2.0f) + position, 10.0f, TEST_LOCATION ); + DALI_TEST_EQUALS( constraintData.localPosition, Vector2(2.0f, 2.0f) + position, 10.0f, TEST_LOCATION ); + + constraintData.Reset(); + END_TEST; +} + +int UtcDaliPanGesturePrediction2SmoothingMultiTap02(void) +{ + TestApplication application; + + Integration::SetPanGesturePredictionMode( 2 ); + Integration::SetPanGestureSmoothingMode( 2 ); + Integration::SetPanGestureUseActualTimes( true ); + Integration::SetPanGestureInterpolationTimeRange( 10 ); + Integration::SetPanGestureScalarOnlyPredictionEnabled( true ); + Integration::SetPanGestureTwoPointPredictionEnabled( true ); + Integration::SetPanGestureTwoPointInterpolatePastTime( 42 ); + Integration::SetPanGestureTwoPointVelocityBias( 0.35f ); + Integration::SetPanGestureTwoPointAccelerationBias( 0.10f ); + Integration::SetPanGestureMultitapSmoothingRange( 34 ); + + Integration::EnableProfiling( Integration::PROFILING_TYPE_PAN_GESTURE ); + + Actor actor = Actor::New(); + actor.SetSize(100.0f, 100.0f); + actor.SetAnchorPoint(AnchorPoint::TOP_LEFT); + Stage::GetCurrent().Add(actor); + + // Add a pan detector + PanGestureDetector detector = PanGestureDetector::New(); + detector.Attach( actor ); + SignalData data; + GestureReceivedFunctor functor( data ); + detector.DetectedSignal().Connect( &application, functor ); + + Property::Index property = actor.RegisterProperty( "Dummy Property", Vector3::ZERO ); + + ConstraintData constraintData; + Constraint constraint = Constraint::New( actor, property, PanConstraint( constraintData ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::SCREEN_POSITION ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::SCREEN_DISPLACEMENT ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::SCREEN_VELOCITY ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::LOCAL_POSITION ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::LOCAL_DISPLACEMENT ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::LOCAL_VELOCITY ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::PANNING ) ); + constraint.Apply(); + + // Render and notify + application.SendNotification(); + application.Render(); + + Vector2 direction(Vector2::XAXIS * -1.0f); + Vector2 position = PerformSwipeGestureSwipe(application, Vector2(2.0f, 2.0f), direction, 10, 3, true, false); + position = PerformSwipeGestureSwipe(application, position, direction, 10, 0, false, false); + position = PerformSwipeGestureSwipe(application, position, direction, 10, 1, false, false, 0); + position = PerformSwipeGestureSwipe(application, position, direction, 10, 1, false, true); + DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); + DALI_TEST_EQUALS( constraintData.called, true, TEST_LOCATION ); + DALI_TEST_EQUALS( constraintData.screenPosition, Vector2(2.0f, 2.0f) + position, 10.0f, TEST_LOCATION ); + DALI_TEST_EQUALS( constraintData.localPosition, Vector2(2.0f, 2.0f) + position, 10.0f, TEST_LOCATION ); + + constraintData.Reset(); + END_TEST; +} + +int UtcDaliPanGesturePrediction2Smoothing(void) +{ + TestApplication application; + + Integration::SetPanGesturePredictionMode( 2 ); + Integration::SetPanGesturePredictionAmount( 57 ); + Integration::SetPanGestureSmoothingMode( 1 ); + Integration::SetPanGestureUseActualTimes( false ); + Integration::SetPanGestureInterpolationTimeRange( 10 ); + Integration::SetPanGestureScalarOnlyPredictionEnabled( true ); + Integration::SetPanGestureTwoPointPredictionEnabled( true ); + Integration::SetPanGestureTwoPointInterpolatePastTime( 42 ); + Integration::SetPanGestureTwoPointVelocityBias( 0.35f ); + Integration::SetPanGestureTwoPointAccelerationBias( 0.10f ); + Integration::SetPanGestureMultitapSmoothingRange( 34 ); + + Actor actor = Actor::New(); + actor.SetSize(100.0f, 100.0f); + actor.SetAnchorPoint(AnchorPoint::TOP_LEFT); + Stage::GetCurrent().Add(actor); + + // Add a pan detector + PanGestureDetector detector = PanGestureDetector::New(); + detector.Attach( actor ); + SignalData data; + GestureReceivedFunctor functor( data ); + detector.DetectedSignal().Connect( &application, functor ); + + Property::Index property = actor.RegisterProperty( "Dummy Property", Vector3::ZERO ); + + ConstraintData constraintData; + Constraint constraint = Constraint::New( actor, property, PanConstraint( constraintData ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::SCREEN_POSITION ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::SCREEN_DISPLACEMENT ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::SCREEN_VELOCITY ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::LOCAL_POSITION ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::LOCAL_DISPLACEMENT ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::LOCAL_VELOCITY ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::PANNING ) ); + constraint.Apply(); + + // Render and notify + application.SendNotification(); + application.Render(); + + Vector2 direction(Vector2::XAXIS * -1.0f); + Vector2 position = PerformSwipeGestureSwipe(application, Vector2(2.0f, 2.0f), direction, 10, 1, true, false); + position = PerformSwipeGestureSwipe(application, position, direction, 1, 3, false, false); + position = PerformSwipeGestureSwipe(application, position, direction, 5, 0, false, false); + position = PerformSwipeGestureSwipe(application, position, direction, 10, 1, false, true); + DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); + DALI_TEST_EQUALS( constraintData.called, true, TEST_LOCATION ); + DALI_TEST_EQUALS( constraintData.screenPosition, Vector2(2.0f, 2.0f) + position, 10.0f, TEST_LOCATION ); + DALI_TEST_EQUALS( constraintData.localPosition, Vector2(2.0f, 2.0f) + position, 10.0f, TEST_LOCATION ); + + constraintData.Reset(); + END_TEST; +} + int UtcDaliPanGestureSetProperties(void) { TestApplication application; @@ -2267,15 +2569,19 @@ int UtcDaliPanGestureSetProperties(void) detector.DetectedSignal().Connect( &application, functor ); Property::Index property = actor.RegisterProperty( "Dummy Property", Vector3::ZERO ); + Property::Index animatableGestureProperty = detector.RegisterProperty( "Dummy Property", Vector3::ZERO ); // For code coverage ConstraintData constraintData; - actor.ApplyConstraint( Constraint::New( property, Source( detector, PanGestureDetector::SCREEN_POSITION ), - Source( detector, PanGestureDetector::SCREEN_DISPLACEMENT ), - Source( detector, PanGestureDetector::SCREEN_VELOCITY ), - Source( detector, PanGestureDetector::LOCAL_POSITION ), - Source( detector, PanGestureDetector::LOCAL_DISPLACEMENT ), - Source( detector, PanGestureDetector::LOCAL_VELOCITY ), - PanConstraint( constraintData ) ) ); + Constraint constraint = Constraint::New( actor, property, PanConstraint( constraintData ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::SCREEN_POSITION ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::SCREEN_DISPLACEMENT ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::SCREEN_VELOCITY ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::LOCAL_POSITION ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::LOCAL_DISPLACEMENT ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::LOCAL_VELOCITY ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::PANNING ) ); + constraint.AddSource( Source( detector, animatableGestureProperty ) ); + constraint.Apply(); // Render and notify application.SendNotification(); @@ -2329,13 +2635,15 @@ int UtcDaliPanGestureSetPropertiesAlreadyPanning(void) Property::Index property = actor.RegisterProperty( "Dummy Property", Vector3::ZERO ); ConstraintData constraintData; - actor.ApplyConstraint( Constraint::New( property, Source( detector, PanGestureDetector::SCREEN_POSITION ), - Source( detector, PanGestureDetector::SCREEN_DISPLACEMENT ), - Source( detector, PanGestureDetector::SCREEN_VELOCITY ), - Source( detector, PanGestureDetector::LOCAL_POSITION ), - Source( detector, PanGestureDetector::LOCAL_DISPLACEMENT ), - Source( detector, PanGestureDetector::LOCAL_VELOCITY ), - PanConstraint( constraintData ) ) ); + Constraint constraint = Constraint::New( actor, property, PanConstraint( constraintData ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::SCREEN_POSITION ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::SCREEN_DISPLACEMENT ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::SCREEN_VELOCITY ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::LOCAL_POSITION ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::LOCAL_DISPLACEMENT ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::LOCAL_VELOCITY ) ); + constraint.AddSource( Source( detector, PanGestureDetector::Property::PANNING ) ); + constraint.Apply(); // Render and notify application.SendNotification(); @@ -2370,8 +2678,109 @@ int UtcDaliPanGesturePropertyIndices(void) Property::IndexContainer indices; detector.GetPropertyIndices( indices ); - DALI_TEST_CHECK( ! indices.empty() ); - DALI_TEST_EQUALS( indices.size(), detector.GetPropertyCount(), TEST_LOCATION ); + DALI_TEST_CHECK( indices.Size() ); + DALI_TEST_EQUALS( indices.Size(), detector.GetPropertyCount(), TEST_LOCATION ); + END_TEST; +} + +namespace +{ +struct PropertyStringIndex +{ + const char * const name; + const Property::Index index; + const Property::Type type; + const Property::Value value; +}; + +const PropertyStringIndex PROPERTY_TABLE[] = +{ + { "screenPosition", PanGestureDetector::Property::SCREEN_POSITION, Property::VECTOR2, Vector2::ZERO }, + { "screenDisplacement", PanGestureDetector::Property::SCREEN_DISPLACEMENT, Property::VECTOR2, Vector2::ZERO }, + { "screenVelocity", PanGestureDetector::Property::SCREEN_VELOCITY, Property::VECTOR2, Vector2::ZERO }, + { "localPosition", PanGestureDetector::Property::LOCAL_POSITION, Property::VECTOR2, Vector2::ZERO }, + { "localDisplacement", PanGestureDetector::Property::LOCAL_DISPLACEMENT, Property::VECTOR2, Vector2::ZERO }, + { "localVelocity", PanGestureDetector::Property::LOCAL_VELOCITY, Property::VECTOR2, Vector2::ZERO }, + { "panning", PanGestureDetector::Property::PANNING, Property::BOOLEAN, false }, +}; +const unsigned int PROPERTY_TABLE_COUNT = sizeof( PROPERTY_TABLE ) / sizeof( PROPERTY_TABLE[0] ); +} // unnamed namespace + + +int UtcDaliPanGestureProperties(void) +{ + TestApplication application; + PanGestureDetector detector = PanGestureDetector::New(); + + for( unsigned int i = 0; i < PROPERTY_TABLE_COUNT; ++i ) + { + DALI_TEST_EQUALS( detector.GetPropertyName( PROPERTY_TABLE[ i ].index ), std::string( PROPERTY_TABLE[ i ].name ), TEST_LOCATION ); + DALI_TEST_EQUALS( detector.GetPropertyIndex( PROPERTY_TABLE[ i ].name ), PROPERTY_TABLE[ i ].index, TEST_LOCATION ); + DALI_TEST_EQUALS( detector.GetPropertyType( PROPERTY_TABLE[ i ].index ), PROPERTY_TABLE[ i ].type, TEST_LOCATION ); + DALI_TEST_EQUALS( detector.IsPropertyWritable( PROPERTY_TABLE[ i ].index ), false, TEST_LOCATION ); + DALI_TEST_EQUALS( detector.IsPropertyAnimatable( PROPERTY_TABLE[ i ].index ), false, TEST_LOCATION ); + DALI_TEST_EQUALS( detector.IsPropertyAConstraintInput( PROPERTY_TABLE[ i ].index ), true, TEST_LOCATION ); + detector.SetProperty( PROPERTY_TABLE[ i ].index, Property::Value() ); // Just for Coverage + } + + END_TEST; +} + +int UtcDaliPanGestureGetProperty(void) +{ + TestApplication application; + PanGestureDetector detector = PanGestureDetector::New(); + + for( unsigned int i = 0; i < PROPERTY_TABLE_COUNT; ++i ) + { + if( PROPERTY_TABLE[ i ].type == Property::VECTOR2 ) + { + bool value = detector.GetProperty( PROPERTY_TABLE[ i ].index ).Get< bool >(); + DALI_TEST_EQUALS( PROPERTY_TABLE[ i ].value.Get< bool >(), value, TEST_LOCATION ); + } + else if( PROPERTY_TABLE[ i ].type == Property::BOOLEAN ) + { + Vector2 value = detector.GetProperty( PROPERTY_TABLE[ i ].index ).Get< Vector2 >(); + DALI_TEST_EQUALS( PROPERTY_TABLE[ i ].value.Get< Vector2 >(), value, TEST_LOCATION ); + } + } + + END_TEST; +} + +int UtcDaliPanGestureGetPropertyWithSceneObject(void) +{ + TestApplication application; + + Actor actor = Actor::New(); + actor.SetSize(100.0f, 100.0f); + actor.SetAnchorPoint(AnchorPoint::TOP_LEFT); + Stage::GetCurrent().Add(actor); + + // Add a pan detector + PanGestureDetector detector = PanGestureDetector::New(); + detector.Attach( actor ); + + // Render and notify + application.SendNotification(); + application.Render(); + + for( unsigned int i = 0; i < PROPERTY_TABLE_COUNT; ++i ) + { + detector.SetProperty( PROPERTY_TABLE[ i ].index, Property::Value() ); // Just for Coverage + + if( PROPERTY_TABLE[ i ].type == Property::VECTOR2 ) + { + bool value = detector.GetProperty( PROPERTY_TABLE[ i ].index ).Get< bool >(); + DALI_TEST_EQUALS( PROPERTY_TABLE[ i ].value.Get< bool >(), value, TEST_LOCATION ); + } + else if( PROPERTY_TABLE[ i ].type == Property::BOOLEAN ) + { + Vector2 value = detector.GetProperty( PROPERTY_TABLE[ i ].index ).Get< Vector2 >(); + DALI_TEST_EQUALS( PROPERTY_TABLE[ i ].value.Get< Vector2 >(), value, TEST_LOCATION ); + } + } + END_TEST; }