<!DOCTYPE html>
<!--
Copyright (c) 2014 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<link rel="import" href="/base/rect.html">
<script>
'use strict';

tr.b.unittest.testSuite(function() {
  test('UVRectBasic', function() {
    function assertRectEquals(a, b, opt_message) {
      var ok = true;
      if (a.x === b.x && a.y === b.y &&
          a.width === b.width && a.height === b.height) {
        return;
      }
      var message = opt_message || 'Expected "' + a.toString() +
          '", got "' + b.toString() + '"';
      throw new tr.b.unittest.TestError(message);
    }
    var container = tr.b.Rect.fromXYWH(0, 0, 10, 10);
    var inner = tr.b.Rect.fromXYWH(1, 1, 8, 8);
    var uv = inner.asUVRectInside(container);
    assertRectEquals(uv, tr.b.Rect.fromXYWH(0.1, 0.1, .8, .8));
    assert.equal(10, container.size().width);
    assert.equal(10, container.size().height);
  });
});
</script>
