From 2d70ee32fc9bad8295f7a1fff368121fc0464410 Mon Sep 17 00:00:00 2001 From: nein09 Date: Mon, 27 Oct 2014 17:58:59 -0700 Subject: [PATCH] Remove randomness from test cases. --- test/viewport.js | 188 ++++++++++++++++++++++++++++------------------- 1 file changed, 112 insertions(+), 76 deletions(-) diff --git a/test/viewport.js b/test/viewport.js index c017f4d3..e7cadd33 100644 --- a/test/viewport.js +++ b/test/viewport.js @@ -23,15 +23,43 @@ viewer = null; } }); - // helper - var getRandom = function(min, max){ - return min + Math.floor(Math.random() * (max - min + 1)); - }; + + // helpers and constants var ZOOM_FACTOR = 2; // the image will be twice as large as the viewer. var VIEWER_SIZE = 500; // We set up the viewer to be 500 px x 500 px. var VIEWER_PADDING = new OpenSeadragon.Point(20, 20); + var testZoomLevels = [-1, 0, 0.1, 0.5, 4, 10]; + + var testPoints = [ + new OpenSeadragon.Point(0, 0), + new OpenSeadragon.Point(0.001, 0.001), + new OpenSeadragon.Point(0.25, 0.5), + new OpenSeadragon.Point(0.999, 0.999), + new OpenSeadragon.Point(1, 1) + ]; + + var testRects = [ + new OpenSeadragon.Rect(0, 0, 0, 0), + new OpenSeadragon.Rect(0.001, 0.005, 0.001, 0.003), + new OpenSeadragon.Rect(0.25, 0.25, 0.25, 0.25), + new OpenSeadragon.Rect(0.999, 0.999, 0.999, 0.999), + new OpenSeadragon.Rect(1, 1, 1, 1) + ]; + + // If this is something we might want to add to the Rect class, I can do that. + // But I assumed that since it isn't there already, that's not functionality + // that we want to make broadly available. + OpenSeadragon.Rect.prototype.times = function( factor ) { + return new OpenSeadragon.Rect( + this.x * factor, + this.y * factor, + this.width * factor, + this.height * factor + ); + } + // ---------- /* asyncTest('template', function() { @@ -58,20 +86,18 @@ var viewport = viewer.viewport; viewport.zoomTo(ZOOM_FACTOR, null, true); - var orig = new OpenSeadragon.Rect( - getRandom(0, 1000), - getRandom(0, 1000), - getRandom(0, 1000), - getRandom(0, 1000) - ); - var expected = new OpenSeadragon.Rect( + var orig, expected, actual; + for (var i = 0; i < testRects.length; i++){ + orig = testRects[i].times(1000); + expected = new OpenSeadragon.Rect( orig.x / 1000, orig.y / 1000, orig.width / 1000, orig.height / 1000 - ); - var actual = viewport.imageToViewportRectangle(orig); - propEqual(actual, expected, "Coordinates converted correctly for " + orig); + ); + actual = viewport.imageToViewportRectangle(orig); + propEqual(actual, expected, "Coordinates converted correctly for " + orig); + } start(); }; @@ -85,20 +111,18 @@ var viewport = viewer.viewport; viewport.zoomTo(ZOOM_FACTOR, null, true); - var orig = new OpenSeadragon.Rect( - getRandom(0, 500), - getRandom(0, 500), - getRandom(0, 500), - getRandom(0, 500) - ); - var expected = new OpenSeadragon.Rect( - orig.x * 1000, - orig.y * 1000, - orig.width * 1000, - orig.height * 1000 - ); - var actual = viewport.viewportToImageRectangle(orig); - propEqual(actual, expected, "Coordinates converted correctly for " + orig); + var orig, expected, actual; + for (var i = 0; i < testRects.length; i++){ + orig = testRects[i].times(500); + expected = new OpenSeadragon.Rect( + orig.x * 1000, + orig.y * 1000, + orig.width * 1000, + orig.height * 1000 + ); + actual = viewport.viewportToImageRectangle(orig); + propEqual(actual, expected, "Coordinates converted correctly for " + orig); + } start(); }; @@ -112,12 +136,13 @@ var viewport = viewer.viewport; viewport.zoomTo(ZOOM_FACTOR, null, true); - var orig = new OpenSeadragon.Point( - getRandom(0, 500), getRandom(0, 500) - ); - var expected = orig.times(ZOOM_FACTOR); - var actual = viewport.viewerElementToImageCoordinates(orig); - propEqual(actual, expected, "Coordinates converted correctly for " + orig); + var orig, expected, actual; + for (var i = 0; i < testPoints.length; i++){ + orig = testPoints[i].times(500); + expected = orig.times(ZOOM_FACTOR); + actual = viewport.viewerElementToImageCoordinates(orig); + propEqual(actual, expected, "Coordinates converted correctly for " + orig); + } start(); }; @@ -131,12 +156,13 @@ var viewport = viewer.viewport; viewport.zoomTo(ZOOM_FACTOR, null, true); - var orig = new OpenSeadragon.Point( - getRandom(0, 1000), getRandom(0, 1000) - ); - var expected = orig.divide(ZOOM_FACTOR); - var actual = viewport.imageToViewerElementCoordinates(orig); - propEqual(actual, expected, "Coordinates converted correctly for " + orig); + var orig, expected, actual; + for (var i = 0; i < testPoints.length; i++){ + orig = testPoints[i].times(1000); + expected = orig.divide(ZOOM_FACTOR); + actual = viewport.imageToViewerElementCoordinates(orig); + propEqual(actual, expected, "Coordinates converted correctly for " + orig); + } start(); }; @@ -150,12 +176,13 @@ var viewport = viewer.viewport; viewport.zoomTo(ZOOM_FACTOR, null, true); - var orig = new OpenSeadragon.Point( - getRandom(100, 3000), getRandom(100, 3000) - ); - var expected = orig.divide(VIEWER_SIZE).plus(VIEWER_PADDING); - var actual = viewport.windowToViewportCoordinates(orig); - propEqual(actual, expected, "Coordinates converted correctly for " + orig); + var orig, expected, actual; + for (var i = 0; i < testPoints.length; i++){ + orig = testPoints[i].times(3000); + expected = orig.divide(VIEWER_SIZE).plus(VIEWER_PADDING); + actual = viewport.windowToViewportCoordinates(orig); + propEqual(actual, expected, "Coordinates converted correctly for " + orig); + } start(); }; @@ -169,14 +196,15 @@ var viewport = viewer.viewport; viewport.zoomTo(ZOOM_FACTOR, null, true); - // test image is 1000 x 1000 - var orig = new OpenSeadragon.Point( - getRandom(0, 1000), getRandom(0, 1000) - ); - var position = viewer.element.getBoundingClientRect(); - var expected = orig.divide(ZOOM_FACTOR).plus( new OpenSeadragon.Point(position.top, position.left) ); - var actual = viewport.imageToWindowCoordinates(orig); - propEqual(actual, expected, "Coordinates converted correctly for " + orig); + var orig, expected, actual; + for (var i = 0; i < testPoints.length; i++){ + // Test image is 1000 x 1000 + orig = testPoints[i].times(1000); + position = viewer.element.getBoundingClientRect(); + expected = orig.divide(ZOOM_FACTOR).plus( new OpenSeadragon.Point(position.top, position.left) ); + actual = viewport.imageToWindowCoordinates(orig); + propEqual(actual, expected, "Coordinates converted correctly for " + orig); + } start(); }; @@ -190,13 +218,13 @@ var viewport = viewer.viewport; viewport.zoomTo(ZOOM_FACTOR, null, true); - var orig = new OpenSeadragon.Point( - getRandom(100, 3000), getRandom(100, 3000) - ); - - var expected = orig.divide(VIEWER_SIZE).plus(VIEWER_PADDING); - var actual = viewport.windowToViewportCoordinates(orig); - propEqual(actual, expected, "Coordinates converted correctly for " + orig); + var orig, expected, actual; + for (var i = 0; i < testPoints.length; i++){ + orig = testPoints[i].times(3000); + expected = orig.divide(VIEWER_SIZE).plus(VIEWER_PADDING); + actual = viewport.windowToViewportCoordinates(orig); + propEqual(actual, expected, "Coordinates converted correctly for " + orig); + } start(); }; @@ -210,13 +238,14 @@ var viewport = viewer.viewport; viewport.zoomTo(ZOOM_FACTOR, null, true); - var orig = new OpenSeadragon.Point( - getRandom(0, 1000), getRandom(0, 1000) - ); - - var expected = orig.minus(VIEWER_PADDING).times(VIEWER_SIZE); - var actual = viewport.viewportToWindowCoordinates(orig); - propEqual(actual, expected, "Coordinates converted correctly for " + orig); + var orig, expected, actual; + for (var i = 0; i < testPoints.length; i++){ + // Test image is 1000 x 1000 + orig = testPoints[i].times(1000); + expected = orig.minus(VIEWER_PADDING).times(VIEWER_SIZE); + actual = viewport.viewportToWindowCoordinates(orig); + propEqual(actual, expected, "Coordinates converted correctly for " + orig); + } start(); }; @@ -230,10 +259,13 @@ var viewport = viewer.viewport; viewport.zoomTo(ZOOM_FACTOR, null, true); - var orig = getRandom(0, 4); - var expected = orig / ZOOM_FACTOR; - var actual = viewport.viewportToImageZoom(orig); - equal(expected, actual, "Coordinates converted correctly for " + orig); + var orig, expected, actual; + for (var i = 0; i < testPoints.length; i++){ + orig = testZoomLevels[i]; + expected = orig / ZOOM_FACTOR; + actual = viewport.viewportToImageZoom(orig); + equal(expected, actual, "Coordinates converted correctly for " + orig); + } start(); }; @@ -247,10 +279,14 @@ var viewport = viewer.viewport; viewport.zoomTo(ZOOM_FACTOR, null, true); - var orig = getRandom(0, 4); - var expected = orig * ZOOM_FACTOR; - var actual = viewport.imageToViewportZoom(orig); - equal(expected, actual, "Coordinates converted correctly for " + orig); + + var orig, expected, actual; + for (var i = 0; i < testPoints.length; i++){ + orig = testZoomLevels[i]; + expected = orig * ZOOM_FACTOR; + actual = viewport.imageToViewportZoom(orig); + equal(expected, actual, "Coordinates converted correctly for " + orig); + } start(); };