<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Testing accuracy of transform evaluation</title>
  <style type="text/css" media="screen">
    .container {
      height: 100px;
      width: 200px;
      margin: 30px;
      outline: 1px solid black;
    }
    .box {
      height: 100%;
      width: 100%;
      background-color: green;
      -webkit-transform: rotate(90deg);
    }
    #results {
      margin-top: 100px;
    }
  </style>
  <script src="resources/transform-test-utils.js" type="text/javascript" charset="utf-8"></script>
  <script type="text/javascript" charset="utf-8">
    if (window.testRunner) {
      testRunner.dumpAsText();
      testRunner.waitUntilDone();
    }

    var gTests = [
      { 'transform' : 'scale(0.0000001) scale(10000000)',  'result' : 'matrix(1, 0, 0, 1, 0, 0)' },
      { 'transform' : 'rotate(-10deg) rotate(10deg) rotate(360deg) rotate(-360deg) rotate(360deg)',  'result' : 'matrix(1, 0, 0, 1, 0, 0)' },
      { 'transform' : 'translate(10000000px) translate(-10000000px)',  'result' : 'matrix(1, 0, 0, 1, 0, 0)' },
    ];
    
    function runTests()
    {
      testTransforms();

      if (window.testRunner)
        testRunner.notifyDone();
    }
  </script>
</head>
<body onload="runTests()">

  <div class="container">
    <div id="test-box" class="box"></div>
  </div>

  <div id="results">
  </div>
</body>
</html>
