UNPKG

accessibility-developer-tools

Version:

This is a library of accessibility-related testing and utility code.

193 lines (152 loc) 5.38 kB
// Copyright 2006 The Closure Library Authors. All Rights Reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS-IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. goog.provide('goog.math.SizeTest'); goog.setTestOnly('goog.math.SizeTest'); goog.require('goog.math.Size'); goog.require('goog.testing.jsunit'); 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 testSizeScaleToCover() { var target = new goog.math.Size(512, 640); var a = new goog.math.Size(1000, 1600); var b = new goog.math.Size(1600, 1000); var c = new goog.math.Size(500, 800); var d = new goog.math.Size(undefined, undefined); assertEquals('(512 x 819.2)', a.scaleToCover(target).toString()); assertEquals('(1024 x 640)', b.scaleToCover(target).toString()); assertEquals('(512 x 819.2)', c.scaleToCover(target).toString()); assertEquals('(512 x 640)', target.scaleToCover(target).toString()); assertEquals('(NaN x NaN)', d.scaleToCover(target).toString()); assertEquals('(NaN x NaN)', a.scaleToCover(d).toString()); } 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()); }