underlying: 'rotateZ(20deg)',
  accumulateFrom: 'rotateZ(40deg)',
  accumulateTo: 'rotateZ(60deg)',
}, [
  {at: -0.5, expect: 'rotateZ(50deg)'},
  {at: 0, expect: 'rotateZ(60deg)'},
  {at: 0.25, expect: 'rotateZ(65deg)'},
  {at: 0.5, expect: 'rotateZ(70deg)'},
  {at: 0.75, expect: 'rotateZ(75deg)'},
  {at: 1, expect: 'rotateZ(80deg)'},
  {at: 1.5, expect: 'rotateZ(90deg)'},
]);

// The rotate functions all share the same primitive type (rotate3d), so can be
// accumulated between. If primitive type matching