mirror of
https://github.com/google/blockly.git
synced 2026-01-09 01:50:11 +01:00
Metrics refactor (#4627)
This commit is contained in:
@@ -43,70 +43,82 @@ suite('Metrics', function() {
|
||||
|
||||
test('GetContentDimensionsExact - empty', function() {
|
||||
var ws = makeMockWs(1, 0, 0, 0, 0);
|
||||
var defaultZoom = Blockly.WorkspaceSvg.getContentDimensionsExact_(ws);
|
||||
var metricsManager = new Blockly.MetricsManager(ws);
|
||||
var defaultZoom = metricsManager.getContentDimensionsExact_(ws);
|
||||
assertDimensionsMatch(defaultZoom, 0, 0, 0, 0);
|
||||
});
|
||||
test('GetContentDimensionsExact - empty zoom in', function() {
|
||||
var ws = makeMockWs(2, 0, 0, 0, 0);
|
||||
var zoomIn = Blockly.WorkspaceSvg.getContentDimensionsExact_(ws);
|
||||
var metricsManager = new Blockly.MetricsManager(ws);
|
||||
var zoomIn = metricsManager.getContentDimensionsExact_(ws);
|
||||
assertDimensionsMatch(zoomIn, 0, 0, 0, 0);
|
||||
});
|
||||
test('GetContentDimensionsExact - empty zoom out', function() {
|
||||
var ws = makeMockWs(.5, 0, 0, 0, 0);
|
||||
var zoomOut = Blockly.WorkspaceSvg.getContentDimensionsExact_(ws);
|
||||
var metricsManager = new Blockly.MetricsManager(ws);
|
||||
var zoomOut = metricsManager.getContentDimensionsExact_(ws);
|
||||
assertDimensionsMatch(zoomOut, 0, 0, 0, 0);
|
||||
});
|
||||
test('GetContentDimensionsExact - non empty at origin', function() {
|
||||
var ws = makeMockWs(1, 0, 0, 100, 100);
|
||||
var defaultZoom = Blockly.WorkspaceSvg.getContentDimensionsExact_(ws);
|
||||
var metricsManager = new Blockly.MetricsManager(ws);
|
||||
var defaultZoom = metricsManager.getContentDimensionsExact_(ws);
|
||||
// Pixel and ws units are the same at default zoom.
|
||||
assertDimensionsMatch(defaultZoom, 0, 0, 100, 100);
|
||||
});
|
||||
test('GetContentDimensionsExact - non empty at origin zoom in', function() {
|
||||
var ws = makeMockWs(2, 0, 0, 100, 100);
|
||||
var zoomIn = Blockly.WorkspaceSvg.getContentDimensionsExact_(ws);
|
||||
var metricsManager = new Blockly.MetricsManager(ws);
|
||||
var zoomIn = metricsManager.getContentDimensionsExact_(ws);
|
||||
// 1 ws unit = 2 pixels at this zoom level.
|
||||
assertDimensionsMatch(zoomIn, 0, 0, 200, 200);
|
||||
});
|
||||
test('GetContentDimensionsExact - non empty at origin zoom out', function() {
|
||||
var ws = makeMockWs(.5, 0, 0, 100, 100);
|
||||
var zoomOut = Blockly.WorkspaceSvg.getContentDimensionsExact_(ws);
|
||||
var metricsManager = new Blockly.MetricsManager(ws);
|
||||
var zoomOut = metricsManager.getContentDimensionsExact_(ws);
|
||||
// 1 ws unit = 0.5 pixels at this zoom level.
|
||||
assertDimensionsMatch(zoomOut, 0, 0, 50, 50);
|
||||
});
|
||||
test('GetContentDimensionsExact - non empty positive origin', function() {
|
||||
var ws = makeMockWs(1, 10, 10, 100, 100);
|
||||
var defaultZoom = Blockly.WorkspaceSvg.getContentDimensionsExact_(ws);
|
||||
var metricsManager = new Blockly.MetricsManager(ws);
|
||||
var defaultZoom = metricsManager.getContentDimensionsExact_(ws);
|
||||
// Pixel and ws units are the same at default zoom.
|
||||
assertDimensionsMatch(defaultZoom, 10, 10, 100, 100);
|
||||
});
|
||||
test('GetContentDimensionsExact - non empty positive origin zoom in', function() {
|
||||
var ws = makeMockWs(2, 10, 10, 100, 100);
|
||||
var zoomIn = Blockly.WorkspaceSvg.getContentDimensionsExact_(ws);
|
||||
var metricsManager = new Blockly.MetricsManager(ws);
|
||||
var zoomIn = metricsManager.getContentDimensionsExact_(ws);
|
||||
// 1 ws unit = 2 pixels at this zoom level.
|
||||
assertDimensionsMatch(zoomIn, 20, 20, 200, 200);
|
||||
});
|
||||
test('GetContentDimensionsExact - non empty positive origin zoom out', function() {
|
||||
var ws = makeMockWs(.5, 10, 10, 100, 100);
|
||||
var zoomOut = Blockly.WorkspaceSvg.getContentDimensionsExact_(ws);
|
||||
var metricsManager = new Blockly.MetricsManager(ws);
|
||||
var zoomOut = metricsManager.getContentDimensionsExact_(ws);
|
||||
// 1 ws unit = 0.5 pixels at this zoom level.
|
||||
assertDimensionsMatch(zoomOut, 5, 5, 50, 50);
|
||||
});
|
||||
test('GetContentDimensionsExact - non empty negative origin', function() {
|
||||
var ws = makeMockWs(1, -10, -10, 100, 100);
|
||||
var defaultZoom = Blockly.WorkspaceSvg.getContentDimensionsExact_(ws);
|
||||
var metricsManager = new Blockly.MetricsManager(ws);
|
||||
var defaultZoom = metricsManager.getContentDimensionsExact_(ws);
|
||||
// Pixel and ws units are the same at default zoom.
|
||||
assertDimensionsMatch(defaultZoom, -10, -10, 100, 100);
|
||||
});
|
||||
test('GetContentDimensionsExact - non empty negative origin zoom in', function() {
|
||||
var ws = makeMockWs(2, -10, -10, 100, 100);
|
||||
var zoomIn = Blockly.WorkspaceSvg.getContentDimensionsExact_(ws);
|
||||
var metricsManager = new Blockly.MetricsManager(ws);
|
||||
var zoomIn = metricsManager.getContentDimensionsExact_(ws);
|
||||
// 1 ws unit = 2 pixels at this zoom level.
|
||||
assertDimensionsMatch(zoomIn, -20, -20, 200, 200);
|
||||
});
|
||||
test('GetContentDimensionsExact - non empty negative origin zoom out', function() {
|
||||
var ws = makeMockWs(.5, -10, -10, 100, 100);
|
||||
var zoomOut = Blockly.WorkspaceSvg.getContentDimensionsExact_(ws);
|
||||
var metricsManager = new Blockly.MetricsManager(ws);
|
||||
var zoomOut = metricsManager.getContentDimensionsExact_(ws);
|
||||
// 1 ws unit = 0.5 pixels at this zoom level.
|
||||
assertDimensionsMatch(zoomOut, -5, -5, 50, 50);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user