UNPKG

sku-pg

Version:

Skulpt is a Javascript implementation of Python 2.x. Python that runs in your browser!

181 lines (144 loc) 4.47 kB
<!DOCTYPE html> <html> <!-- Copyright 2006 The Closure Library Authors. All Rights Reserved. Use of this source code is governed by the Apache License, Version 2.0. See the COPYING file for details. --> <head> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>Closure Unit Tests - goog.math.Size</title> <script src="../base.js"></script> <script> goog.require('goog.math.Coordinate'); goog.require('goog.math.Size'); goog.require('goog.testing.jsunit'); </script> </head> <body> <script> function testSize1() { var s = new goog.math.Size(undefined, undefined); assertUndefined(s.width); assertUndefined(s.height); assertEquals('(undefined x undefined)', s.toString()); } function testSize3() { var s = new goog.math.Size(10, 20); assertEquals(10, s.width); assertEquals(20, s.height); assertEquals('(10 x 20)', s.toString()); } function testSize4() { var s = new goog.math.Size(10.5, 20.897); assertEquals(10.5, s.width); assertEquals(20.897, s.height); assertEquals('(10.5 x 20.897)', s.toString()); } function testSizeClone() { var s = new goog.math.Size(undefined, undefined); assertEquals(s.toString(), s.clone().toString()); s.width = 4; s.height = 5; assertEquals(s.toString(), s.clone().toString()); } function testSizeEquals() { var a = new goog.math.Size(4, 5); assertTrue(goog.math.Size.equals(a, a)); assertFalse(goog.math.Size.equals(a, null)); assertFalse(goog.math.Size.equals(null, a)); var b = new goog.math.Size(4, 5); var c = new goog.math.Size(4, 6); assertTrue(goog.math.Size.equals(a, b)); assertFalse(goog.math.Size.equals(a, c)); } function testSizeArea() { var s = new goog.math.Size(4, 5); assertEquals(20, s.area()); } function testSizePerimeter() { var s = new goog.math.Size(4, 5); assertEquals(18, s.perimeter()); } function testSizeAspectRatio() { var s = new goog.math.Size(undefined, undefined); assertNaN(s.aspectRatio()); s.width = 4; s.height = 0; assertEquals(Infinity, s.aspectRatio()); s.height = 5; assertEquals(0.8, s.aspectRatio()); } function testSizeFitsInside() { var target = new goog.math.Size(10, 10); var a = new goog.math.Size(5, 8); var b = new goog.math.Size(5, 12); var c = new goog.math.Size(19, 7); assertTrue(a.fitsInside(target)); assertFalse(b.fitsInside(target)); assertFalse(c.fitsInside(target)); } function testSizeScaleToFit() { var target = new goog.math.Size(512, 640); var a = new goog.math.Size(1600, 1200); var b = new goog.math.Size(1200, 1600); var c = new goog.math.Size(400, 300); var d = new goog.math.Size(undefined, undefined); assertEquals('(512 x 384)', a.scaleToFit(target).toString()); assertEquals('(480 x 640)', b.scaleToFit(target).toString()); assertEquals('(512 x 384)', c.scaleToFit(target).toString()); assertEquals('(512 x 640)', target.scaleToFit(target).toString()); assertEquals('(NaN x NaN)', d.scaleToFit(target).toString()); assertEquals('(NaN x NaN)', a.scaleToFit(d).toString()); } function testSizeIsEmpty() { var s = new goog.math.Size(undefined, undefined); assertTrue(s.isEmpty()); s.width = 0; s.height = 5; assertTrue(s.isEmpty()); s.width = 4; assertFalse(s.isEmpty()); } function testSizeScaleFactor() { var s = new goog.math.Size(4, 5); assertEquals('(8 x 10)', s.scale(2).toString()); assertEquals('(0.8 x 1)', s.scale(0.1).toString()); } function testSizeCeil() { var s = new goog.math.Size(2.3, 4.7); assertEquals('(3 x 5)', s.ceil().toString()); } function testSizeFloor() { var s = new goog.math.Size(2.3, 4.7); assertEquals('(2 x 4)', s.floor().toString()); } function testSizeRound() { var s = new goog.math.Size(2.3, 4.7); assertEquals('(2 x 5)', s.round().toString()); } function testSizeGetLongest() { var s = new goog.math.Size(3, 4); assertEquals(4, s.getLongest()); s.height = 3; assertEquals(3, s.getLongest()); s.height = 2; assertEquals(3, s.getLongest()); assertNaN(new goog.math.Size(undefined, undefined).getLongest()); } function testSizeGetShortest() { var s = new goog.math.Size(3, 4); assertEquals(3, s.getShortest()); s.height = 3; assertEquals(3, s.getShortest()); s.height = 2; assertEquals(2, s.getShortest()); assertNaN(new goog.math.Size(undefined, undefined).getShortest()); } function testSizeScaleXY() { var s = new goog.math.Size(5, 10); assertEquals('(20 x 30)', s.scale(4, 3).toString()); } </script> </body> </html>