testplane
Version:
Tests framework based on mocha and wdio
221 lines (220 loc) • 7.73 kB
JavaScript
;
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;