<html>
<style>
div {
    position: relative;
    height: 100px;
    width: 100px;
    background: blue;
}
</style>
<body>
<p>
Each section below has two boxes, the top runs on the main thread, the bottom
on the compositor.
</p><p>
This test is successful if the boxes are mostly in sync and all finish at the
same time.
</p>
<hr>

Playback rate is set to -0.5
<br>
<div id="test0a">MT</div>
<div id="test0b">CT</div>

Playback rate is set to -1
<br>
<div id="test1a">MT</div>
<div id="test1b">CT</div>

Playback rate is set to -2
<br>
<div id="test2a">MT</div>
<div id="test2b">CT</div>

Playback rate is set to -1, direction is alternate
<br>
<div id="test3a">MT</div>
<div id="test3b">CT</div>

Playback rate is set to -1, direction is alternate, iterations is 5 - should finish a second later.
<br>
<div id="test4a">MT</div>
<div id="test4b">CT</div>

Playback rate is set to -1, direction is alternate-reverse
<br>
<div id="test5a">MT</div>
<div id="test5b">CT</div>

Playback rate is set to -1, direction is alternate-reverse, iterations is 5 - should finish a second later.
<br>
<div id="test6a">MT</div>
<div id="test6b">CT</div>

<script>
    var transformKeyframes = [
        {transform: 'translateX(0px)'},
        {transform: 'translateX(500px)'}
        ];
    var leftKeyframes = [
        {left: '0'},
        {left: '500px'}
        ];
    var player0a = test0a.animate(leftKeyframes, {
            duration: 1000,
            iterations: 2,
            fill: 'forwards',
            playbackRate: -0.5
        });
    var player0b = test0b.animate(transformKeyframes, {
            duration: 1000,
            iterations: 2,
            fill: 'forwards',
            playbackRate: -0.5
        });
    var player1a = test1a.animate(leftKeyframes, {
            duration: 1000,
            iterations: 4,
            fill: 'forwards',
            playbackRate: -1
        });
    var player1b = test1b.animate(transformKeyframes, {
            duration: 1000,
            iterations: 4,
            fill: 'forwards',
            playbackRate: -1
        });
    var player2a = test2a.animate(leftKeyframes, {
            duration: 1000,
            iterations: 8,
            fill: 'forwards',
            playbackRate: -2
        });
    var player2b = test2b.animate(transformKeyframes, {
            duration: 1000,
            iterations: 8,
            fill: 'forwards',
            playbackRate: -2
        });
    var player3a = test3a.animate(leftKeyframes, {
            duration: 1000,
            iterations: 4,
            fill: 'both',
            playbackRate: -1,
            direction: 'alternate'
        });
    var player3b = test3b.animate(transformKeyframes, {
            duration: 1000,
            iterations: 4,
            fill: 'both',
            playbackRate: -1,
            direction: 'alternate'
        });
    var player4a = test4a.animate(leftKeyframes, {
            duration: 1000,
            iterations: 5,
            fill: 'both',
            playbackRate: -1,
            direction: 'alternate'
        });
    var player4b = test4b.animate(transformKeyframes, {
            duration: 1000,
            iterations: 5,
            fill: 'both',
            playbackRate: -1,
            direction: 'alternate'
        });
    var player5a = test5a.animate(leftKeyframes, {
            duration: 1000,
            iterations: 4,
            fill: 'both',
            playbackRate: -1,
            direction: 'alternate-reverse'
        });
    var player5b = test5b.animate(transformKeyframes, {
            duration: 1000,
            iterations: 4,
            fill: 'both',
            playbackRate: -1,
            direction: 'alternate-reverse'
        });
    var player6a = test6a.animate(leftKeyframes, {
            duration: 1000,
            iterations: 5,
            fill: 'both',
            playbackRate: -1,
            direction: 'alternate-reverse'
        });
    var player6b = test6b.animate(transformKeyframes, {
            duration: 1000,
            iterations: 5,
            fill: 'both',
            playbackRate: -1,
            direction: 'alternate-reverse'
        });
</script>
</body>
</html>