///////////////////////////////////////////////////////////////////////////////
namespace
{
-typedef Dali::PanGestureDetector::AngleContainer::size_type AngleSizeType;
-
const int PAN_EVENT_TIME_DELTA = 8;
const int PAN_GESTURE_UPDATE_COUNT = 50;
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.AddAngle( PanGestureDetector::DIRECTION_LEFT, Radian( Math::PI * 0.25 ) );
- DALI_TEST_EQUALS( angles.size(), static_cast<AngleSizeType>(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<AngleSizeType>(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<AngleSizeType>(2), TEST_LOCATION );
+ DALI_TEST_EQUALS( detector.GetAngleCount(), 2u, TEST_LOCATION );
detector.RemoveAngle( PanGestureDetector::DIRECTION_RIGHT );
- DALI_TEST_EQUALS( angles.size(), static_cast<AngleSizeType>(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 );
}
detector.ClearAngles();
- DALI_TEST_EQUALS( angles.size(), static_cast<AngleSizeType>(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;
}
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();
//
//
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;
}
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<AngleSizeType>(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 )
{
- if ( iter->first == PanGestureDetector::DIRECTION_RIGHT )
+ 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( 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<AngleSizeType>(2), TEST_LOCATION );
+ DALI_TEST_EQUALS( detector.GetAngleCount(), 2u, TEST_LOCATION );
detector.RemoveDirection( PanGestureDetector::DIRECTION_RIGHT );
- DALI_TEST_EQUALS( angles.size(), static_cast<AngleSizeType>(0), TEST_LOCATION );
+ DALI_TEST_EQUALS( detector.GetAngleCount(), 0u, TEST_LOCATION );
END_TEST;
}
PerformSwipeGestureSwipe(application, Vector2(1.0f, 1.0f), direction, PAN_GESTURE_UPDATE_COUNT, 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;
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;
}