+ const unsigned int NUM_FRAMES(15);
+
+ struct TestData
+ {
+ float startTime;
+ float endTime;
+ float startX;
+ float endX;
+ float expected[NUM_FRAMES];
+ };
+
+ TestData testData[] = {
+ // ACTOR 0
+ /*0.0f, 0.1f 0.2f 0.3f 0.4f 0.5f 0.6f 0.7f 0.8f 0.9f 1.0f */
+ /* |----------PlayRange---------------| */
+ /* | reverse */
+ { 0.0f, 1.0f, // TimePeriod
+ 0.0f, 100.0f, // POS
+ {/**/ 30.0f, 40.0f, 50.0f, 60.0f, 70.0f, /* Loop */
+ /**/ 30.0f, 40.0f, 50.0f, 60.0f, /* Reverse direction */
+ /**/ 50.0f,
+ /**/ 40.0f,
+ /**/ 30.0f,
+ /**/ 70.0f,
+ /**/ 60.0f,
+ /**/ 50.0f,
+ /**/
+ }
+ },
+
+ // ACTOR 1 - Across start of range
+ /*0.0f, 0.1f 0.2f 0.3f 0.4f 0.5f 0.6f 0.7f 0.8f 0.9f 1.0f */
+ /* |----------PlayRange---------------| */
+ /* | reverse */
+ { 0.2f, 0.5f, // TimePeriod
+ 20.0f, 50.0f, // POS
+ {/**/ 30.0f, 40.0f, 50.0f, 50.0f, 50.0f, /* Loop */
+ /**/ 30.0f, 40.0f, 50.0f, 50.0f, /* Reverse direction @ frame #9 */
+ /**/ 50.0f,
+ /**/ 40.0f,
+ /**/ 30.0f,
+ /**/ 50.0f,
+ /**/ 50.0f,
+ /**/ 50.0f
+ }
+ },
+
+ // ACTOR 2 - Across end of range
+ /*0.0f, 0.1f 0.2f 0.3f 0.4f 0.5f 0.6f 0.7f 0.8f 0.9f 1.0f */
+ /* |----------PlayRange---------------| */
+ /* | reverse */
+ {/**/ 0.5f, 0.9f, // TimePeriod
+ /**/ 50.0f, 90.0f, // POS
+ { /**/ 50.0f, 50.0f, 50.0f, 60.0f, 70.0f, /* Loop */
+ /**/ 50.0f, 50.0f, 50.0f, 60.0f,/* Reverse direction @ frame #9 */
+ /**/ 50.0f,
+ /**/ 50.0f,
+ /**/ 50.0f, 70.0f,
+ /**/ 60.0f,
+ /**/ 50.0f,
+ }
+ },
+
+ // ACTOR 3 - Before beginning of range
+ /*0.0f, 0.1f 0.2f 0.3f 0.4f 0.5f 0.6f 0.7f 0.8f 0.9f 1.0f */
+ /* |----------PlayRange---------------| */
+ /* | reverse */
+ {/**/ 0.1f, 0.25f, // TimePeriod
+ /**/ 10.0f, 25.0f, // POS
+ { /**/
+ /**/ 25.0f, 25.0f, 25.0f, 25.0f, 25.0f, 25.0f, 25.0f, 25.0f, 25.0f, 25.0f, 25.0f, 25.0f, 25.0f, 25.0f, 25.0f
+ /**/
+ }
+ },
+
+ // ACTOR 4 - After end of range
+ /*0.0f, 0.1f 0.2f 0.3f 0.4f 0.5f 0.6f 0.7f 0.8f 0.9f 1.0f */
+ /* |----------PlayRange---------------| */
+ /* | reverse */
+ {/**/ 0.85f, 1.0f, // TimePeriod
+ /**/ 85.0f, 100.0f, // POS
+ { /**/
+ /**/ 85.0f, 85.0f, 85.0f, 85.0f, 85.0f, 85.0f, 85.0f, 85.0f, 85.0f, 85.0f, 85.0f, 85.0f, 85.0f, 85.0f, 85.0f
+ /**/
+ }
+ },
+ // Actor 5 - Middle of range
+ /*0.0f, 0.1f 0.2f 0.3f 0.4f 0.5f 0.6f 0.7f 0.8f 0.9f 1.0f */
+ /* |----------PlayRange---------------| */
+ /* | reverse */
+ {/**/ 0.4f, 0.65f, // Time Period
+ /**/ 40.0f, 65.0f, // Position
+ { /**/ 40.0f, 40.0f, 50.0f, 60.0f, 65.0f,
+ /**/ 40.0f, 40.0f, 50.0f, 60.0f, // Reverse
+ /**/ 50.0f,
+ /**/ 40.0f,
+ /**/ 40.0f,
+ /**/ 65.0f,
+ /**/ 60.0f,
+ /**/ 50.0f,
+ }
+ }
+ };
+
+ const size_t NUM_ENTRIES(sizeof(testData)/sizeof(TestData));