mirror of
https://github.com/classilla/tenfourfox.git
synced 2024-10-22 02:25:05 +00:00
84 lines
3.0 KiB
JavaScript
84 lines
3.0 KiB
JavaScript
/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
|
|
/* vim: set ts=2 et sw=2 tw=80: */
|
|
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
/* eslint no-eval:0 */
|
|
|
|
"use strict";
|
|
|
|
var Cu = Components.utils;
|
|
const {require} = Cu.import("resource://devtools/shared/Loader.jsm", {});
|
|
const {findOptimalTimeInterval} = require("devtools/client/animationinspector/utils");
|
|
|
|
// This test array contains objects that are used to test the
|
|
// findOptimalTimeInterval function. Each object should have the following
|
|
// properties:
|
|
// - desc: an optional string that will be printed out
|
|
// - timeScale: a number that represents how many pixels is 1ms
|
|
// - minSpacing: an optional number that represents the minim space between 2
|
|
// time graduations
|
|
// - expectedInterval: a number that you expect the findOptimalTimeInterval
|
|
// function to return as a result.
|
|
// Optionally you can pass a string where `interval` is the calculated
|
|
// interval, this string will be eval'd and tested to be truthy.
|
|
const TEST_DATA = [{
|
|
desc: "With 1px being 1ms and no minSpacing, expect the interval to be the " +
|
|
"interval multiple",
|
|
timeScale: 1,
|
|
minSpacing: undefined,
|
|
expectedInterval: 25
|
|
}, {
|
|
desc: "With 1px being 1ms and a custom minSpacing being a multiple of 25 " +
|
|
"expect the interval to be the custom min spacing",
|
|
timeScale: 1,
|
|
minSpacing: 50,
|
|
expectedInterval: 50
|
|
}, {
|
|
desc: "With 1px being 1ms and a custom minSpacing not being multiple of 25 " +
|
|
"expect the interval to be the next multiple of 10",
|
|
timeScale: 1,
|
|
minSpacing: 26,
|
|
expectedInterval: 50
|
|
}, {
|
|
desc: "If 1ms corresponds to a distance that is greater than the min " +
|
|
"spacing then, expect the interval to be this distance",
|
|
timeScale: 20,
|
|
minSpacing: undefined,
|
|
expectedInterval: 20
|
|
}, {
|
|
desc: "If 1ms corresponds to a distance that is greater than the min " +
|
|
"spacing then, expect the interval to be this distance, even if it " +
|
|
"isn't a multiple of 25",
|
|
timeScale: 33,
|
|
minSpacing: undefined,
|
|
expectedInterval: 33
|
|
}, {
|
|
desc: "If 1ms is a very small distance, then expect this distance to be " +
|
|
"multiplied by 25, 50, 100, 200, etc... until it goes over the min " +
|
|
"spacing",
|
|
timeScale: 0.001,
|
|
minSpacing: undefined,
|
|
expectedInterval: 12.8
|
|
}, {
|
|
desc: "If the time scale is such that we need to iterate more than the " +
|
|
"maximum allowed number of iterations, then expect an interval lower " +
|
|
"than the minimum one",
|
|
timeScale: 1e-31,
|
|
minSpacing: undefined,
|
|
expectedInterval: "interval < 10"
|
|
}];
|
|
|
|
function run_test() {
|
|
for (let {timeScale, desc, minSpacing, expectedInterval} of TEST_DATA) {
|
|
do_print("Testing timeScale: " + timeScale + " and minSpacing: " +
|
|
minSpacing + ". Expecting " + expectedInterval + ".");
|
|
|
|
let interval = findOptimalTimeInterval(timeScale, minSpacing);
|
|
if (typeof expectedInterval == "string") {
|
|
ok(eval(expectedInterval), desc);
|
|
} else {
|
|
equal(interval, expectedInterval, desc);
|
|
}
|
|
}
|
|
}
|