These files show the behavior of an animation for different timeCodesPerSecond values set, especially edge cases.
The animated prim has time samples from 0 to 100:
double3 xformOp:translate.timeSamples = { 0: (0, 0, 0), 100: (100, 0, 0), }
timeCodesPerSecond = -1 : timeCodesPerSecond_-1.usdatimeCodesPerSecond = 0 : timeCodesPerSecond_0.usdatimeCodesPerSecond = 1 : timeCodesPerSecond_1.usdatimeCodesPerSecond = 24 : timeCodesPerSecond_24.usdatimeCodesPerSecond = 48 : timeCodesPerSecond_48.usdatimeCodesPerSecond = 100 : timeCodesPerSecond_100.usdatimeCodesPerSecond = 101 : timeCodesPerSecond_101.usdatimeCodesPerSecond = 128 : timeCodesPerSecond_128.usda