UNPKG

testplane

Version:

Tests framework based on mocha and wdio

221 lines (220 loc) 7.73 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; exports.__esModule = true; exports.fromBcrToRect = exports.fromDeviceToCssNumber = exports.fromCssToDeviceNumber = exports.fromCssToDevice = exports.ceilCoords = exports.floorCoords = exports.roundCoords = exports.getCoveringRect = exports.fromViewportToCaptureArea = exports.fromCaptureAreaToViewport = exports.getMinCoord = exports.getMaxCoord = exports.getMaxLength = exports.getRight = exports.getBottom = exports.getWidth = exports.getHeight = exports.getIntersection = exports.intersectXBands = exports.intersectYBands = exports.prettyRect = exports.prettySize = exports.prettyPoint = exports.equalsSize = exports.subtractCoords = exports.addCoords = exports.getSize = void 0; var assign_1 = require("./assign"); var getSize = function (rect) { return { width: rect.width, height: rect.height }; }; exports.getSize = getSize; var addCoords = function (a, b) { return (a + b); }; exports.addCoords = addCoords; var subtractCoords = function (a, b) { return (a - b); }; exports.subtractCoords = subtractCoords; var equalsSize = function (a, b) { return a.width === b.width && a.height === b.height; }; exports.equalsSize = equalsSize; var prettyPoint = function (point) { return "{ left: ".concat(point.left, ", top: ").concat(point.top, " }"); }; exports.prettyPoint = prettyPoint; var prettySize = function (size) { return "{ width: ".concat(size.width, ", height: ").concat(size.height, " }"); }; exports.prettySize = prettySize; var prettyRect = function (rect) { return "{ left: ".concat(rect.left, ", top: ").concat(rect.top, ", width: ").concat(rect.width, ", height: ").concat(rect.height, " }"); }; exports.prettyRect = prettyRect; var intersectYBands = function (a, b) { if (!a || !b) { return null; } var top = Math.max(a.top, b.top); var bottom = Math.min(a.top + a.height, b.top + b.height); return bottom <= top ? null : { top: top, height: bottom - top }; }; exports.intersectYBands = intersectYBands; var intersectXBands = function (a, b) { if (!a || !b) { return null; } var left = Math.max(a.left, b.left); var right = Math.min(a.left + a.width, b.left + b.width); return right <= left ? null : { left: left, width: right - left }; }; exports.intersectXBands = intersectXBands; var getIntersection = function (a, b) { if (!a || !b) return null; var result = __assign(__assign({}, a), b); if ("top" in a && "top" in b) { var y = (0, exports.intersectYBands)(a, b); if (!y) return null; (0, assign_1.assign)(result, y); } if ("left" in a && "left" in b) { var x = (0, exports.intersectXBands)(a, b); if (!x) return null; (0, assign_1.assign)(result, x); } return result; }; exports.getIntersection = getIntersection; /* Note: width and height between a and b is computed inclusive of a, but exclusive of b. Width between 1 and 2 is 1. bottom of rect with top=0 and height=1 is 1. These conventions are very useful when dealing with 0-sized areas. */ var getHeight = function (a, b) { return Math.abs(a - b); }; exports.getHeight = getHeight; var getWidth = function (a, b) { return Math.abs(a - b); }; exports.getWidth = getWidth; var getBottom = function (bandOrRect) { return (bandOrRect.top + bandOrRect.height); }; exports.getBottom = getBottom; var getRight = function (bandOrRect) { return (bandOrRect.left + bandOrRect.width); }; exports.getRight = getRight; var getMaxLength = function () { var lengths = []; for (var _i = 0; _i < arguments.length; _i++) { lengths[_i] = arguments[_i]; } return Math.max.apply(Math, lengths); }; exports.getMaxLength = getMaxLength; var getMaxCoord = function () { var coords = []; for (var _i = 0; _i < arguments.length; _i++) { coords[_i] = arguments[_i]; } return Math.max.apply(Math, coords); }; exports.getMaxCoord = getMaxCoord; var getMinCoord = function () { var coords = []; for (var _i = 0; _i < arguments.length; _i++) { coords[_i] = arguments[_i]; } return Math.min.apply(Math, coords); }; exports.getMinCoord = getMinCoord; var fromCaptureAreaToViewport = function (coordRelativeToCaptureArea, captureAreaTopRelativeToViewport) { return (coordRelativeToCaptureArea + captureAreaTopRelativeToViewport); }; exports.fromCaptureAreaToViewport = fromCaptureAreaToViewport; var fromViewportToCaptureArea = function (coordRelativeToViewport, captureAreaTopRelativeToViewport) { return (coordRelativeToViewport - captureAreaTopRelativeToViewport); }; exports.fromViewportToCaptureArea = fromViewportToCaptureArea; var getCoveringRect = function (rects) { if (rects.length === 0) { throw new Error("No rectangles to cover"); } var left = rects[0].left; var top = rects[0].top; var right = (0, exports.getRight)(rects[0]); var bottom = (0, exports.getBottom)(rects[0]); for (var i = 1; i < rects.length; i++) { var r = rects[i]; var rLeft = r.left; var rTop = r.top; left = (0, exports.getMinCoord)(left, rLeft); top = (0, exports.getMinCoord)(top, rTop); right = (0, exports.getMaxCoord)(right, (0, exports.getRight)(r)); bottom = (0, exports.getMaxCoord)(bottom, (0, exports.getBottom)(r)); } return { left: left, top: top, width: (0, exports.getWidth)(left, right), height: (0, exports.getHeight)(top, bottom) }; }; exports.getCoveringRect = getCoveringRect; var roundCoords = function (value) { var v = value; var result = {}; if ("top" in v) { var top_1 = v.top; result.top = Math.floor(top_1); } if ("height" in v) { result.height = "top" in v ? Math.ceil(v.top + v.height) - result.top : Math.ceil(v.height); } if ("left" in v) { var left = v.left; result.left = Math.floor(left); } if ("width" in v) { result.width = "left" in v ? Math.ceil(v.left + v.width) - result.left : Math.ceil(v.width); } return result; }; exports.roundCoords = roundCoords; var floorCoords = function (value) { var v = value; var result = {}; for (var key in v) { result[key] = Math.floor(v[key]); } return result; }; exports.floorCoords = floorCoords; var ceilCoords = function (value) { var v = value; var result = {}; for (var key in v) { result[key] = Math.ceil(v[key]); } return result; }; exports.ceilCoords = ceilCoords; var fromCssToDevice = function (value, pixelRatio) { var v = value; var scaled = {}; for (var key in v) { scaled[key] = v[key] * pixelRatio; } return (pixelRatio % 1 === 0 ? scaled : (0, exports.roundCoords)(scaled)); }; exports.fromCssToDevice = fromCssToDevice; var fromCssToDeviceNumber = function (value, pixelRatio) { return (value * pixelRatio); }; exports.fromCssToDeviceNumber = fromCssToDeviceNumber; var fromDeviceToCssNumber = function (value, pixelRatio) { return (value / pixelRatio); }; exports.fromDeviceToCssNumber = fromDeviceToCssNumber; var fromBcrToRect = function (bcr) { return { left: bcr.left, top: bcr.top, width: bcr.width, height: bcr.height }; }; exports.fromBcrToRect = fromBcrToRect;