(40deg sides)'},
  {at: 1, expect: 'ray(40deg sides)'},
  {at: 1.5, expect: 'ray(40deg sides)'},
]);

// Ray paths compose with underlying.
test_composition({
  property: 'offset-path',
  underlying: 'ray(20deg closest-side)',
  addFrom: 'ray(10deg closest-side)',
  replaceTo: 'ray(10deg closest-side)',
}, [
  {at: -0.3, expect: 'ray(36deg closest-side)'},
  {at: 0, expect: 'ray(30deg closest-side)'},
  {at: 0.3, expect: 'ray(24deg closest-side)'},
  {at: 0.6, expect: 'ray(18deg closest-side)'},
  {at: 1, e