Skip to content

Commit 4e9a7ca

Browse files
committed
Merge pull request #7 from plotly/image-test
plotly.js image test
2 parents ae11cc0 + 44957ab commit 4e9a7ca

File tree

533 files changed

+8435
-35960
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

533 files changed

+8435
-35960
lines changed

circle.yml

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
general:
2+
artifacts:
3+
- "build/test_images/" # relative to the build directory
4+
- "build/test_images_diff/" # relative to the build directory
5+
6+
machine:
7+
node:
8+
version: 4.2.1
9+
services:
10+
- docker
11+
12+
13+
dependencies:
14+
pre:
15+
- docker pull plotly/imageserver:0.2.1
16+
post:
17+
- npm run cibuild
18+
- docker run -d --name myimageserver -v $PWD:/var/www/streambed/image_server/plotly.js -p 9010:9010 plotly/imageserver:0.2.1; sleep 20
19+
20+
test:
21+
override:
22+
- sudo lxc-attach -n "$(docker inspect --format '{{.Id}}' myimageserver)" -- bash -c "cd /var/www/streambed/image_server/plotly.js && node test/image/compare_pixels_test.js"
23+
- npm run citest-jasmine

devtools/image_viewer/index.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<head>
33
</head>
44
<body>
5-
<div id="plot-list"></div>
5+
<div id="plot-list" style="overflow:auto; height:100px;"></div>
66
<div id="plot-images"></div>
77
<div id="plot-mock"></div>
88

devtools/image_viewer/server.js

+15-6
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ var path = require('path');
44
var exec = require('child_process').exec;
55

66
var browserify = require('browserify');
7+
var brfs = require('brfs');
78
var ecstatic = require('ecstatic');
89
var _open = require('open');
910

@@ -15,23 +16,31 @@ var PORT = '9090';
1516

1617
console.log('Listening on :' + PORT + '\n');
1718

18-
var listName = 'list-of-incorrect-images.txt';
19+
var listPath = constants.pathToTestImagesDiffList;
20+
var listCMD = [
21+
'ls',
22+
constants.pathToTestImagesDiff,
23+
'>',
24+
listPath
25+
].join(' ');
1926

2027
// build image viewer bundle
2128
fs.unlink(constants.pathToImageViewerBundle, function() {
22-
exec('ls ../test-images-diffs/ > ' + listName, function() {
23-
var b = browserify(path.join(__dirname, './viewer.js'), { debug: true });
29+
exec(listCMD, function() {
30+
var b = browserify(path.join(__dirname, './viewer.js'), {
31+
debug: true,
32+
transform: [brfs]
33+
});
2434

25-
b.transform('brfs');
2635
b.bundle(function(err) {
2736
if(err) throw err;
2837

2938
_open('http://localhost:' + PORT + '/devtools/image_viewer');
3039
})
3140
.pipe(fs.createWriteStream(constants.pathToImageViewerBundle));
3241

33-
fs.readFile(listName, 'utf8', function(err, data) {
34-
console.log('In ' + listName + ':\n' + data);
42+
fs.readFile(listPath, 'utf8', function(err, data) {
43+
console.log('In ' + listPath + ':\n' + data);
3544
});
3645
});
3746
});

devtools/image_viewer/viewer.js

+11-5
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,23 @@
11
var fs = require('fs');
2+
23
var d3 = require('d3');
34

5+
var constants = require('../../tasks/util/constants');
6+
7+
48
var $plotlist = document.getElementById('plot-list'),
59
$images = document.getElementById('plot-images'),
610
$mock = document.getElementById('plot-mock');
711

8-
var dirBaseline = '../test-images-baseline/',
9-
dirTest = '../test-images/',
10-
dirDiff = '../test-images-diffs/',
11-
dirMocks = '../mocks/';
12+
var dirBaseline = constants.pathToTestImageBaselines,
13+
dirTest = constants.pathToTestImages,
14+
dirDiff = constants.pathToTestImagesDiff,
15+
dirMocks = constants.pathToTestImageMocks;
1216

17+
// N.B. brfs only understand hard-coded paths
1318
var imageNames = fs.readFileSync(
14-
__dirname + '/list-of-incorrect-images.txt', 'utf8'
19+
__dirname + '/../../build/list_of_incorrect_images.txt',
20+
'utf8'
1521
)
1622
.split('\n')
1723
.filter(function(x) { return x; })

devtools/test_dashboard/buttons.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ function plotButtons(plots, figDir) {
109109
plotlist.appendChild(pummelButton);
110110

111111
var i = 0;
112-
var mock = require('./testplots-3d/marker-color.json');
112+
var mock = require('@mocks/gl3d_marker-color.json');
113113
var statusDiv = document.getElementById('status-info');
114114

115115
pummelButton.addEventListener('click', function () {

devtools/test_dashboard/server.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,13 @@ var PORT = '8080';
1717
var testFile;
1818
switch(process.argv[2]) {
1919
case 'geo':
20-
testFile = './test-geo';
20+
testFile = 'test_geo';
2121
break;
22-
case '2d':
23-
testFile = './test-2d';
22+
case 'gl3d':
23+
testFile = 'test_gl3d';
2424
break;
2525
default:
26-
testFile = './test-3d';
26+
testFile = 'test_gl2d';
2727
}
2828

2929
console.log('Using ' + testFile);

devtools/test_dashboard/test-2d.js

-74
This file was deleted.

devtools/test_dashboard/test-3d.js

-37
This file was deleted.

devtools/test_dashboard/test_gl2d.js

+46
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
var plotButtons = require('./buttons');
2+
3+
var figDir = '../../test/image/baselines/gl2d_';
4+
5+
var plots = {};
6+
7+
plots['10'] = require('@mocks/gl2d_10.json');
8+
plots['14'] = require('@mocks/gl2d_14.json');
9+
plots['12'] = require('@mocks/gl2d_12.json');
10+
plots['17'] = require('@mocks/gl2d_17.json');
11+
plots['22'] = require('@mocks/gl2d_22.json');
12+
plots['24'] = require('@mocks/gl2d_24.json');
13+
plots['28'] = require('@mocks/gl2d_28.json');
14+
plots['30'] = require('@mocks/gl2d_30.json');
15+
plots['32'] = require('@mocks/gl2d_32.json');
16+
plots['axes_booleans'] = require('@mocks/gl2d_axes_booleans.json');
17+
plots['axes_labels'] = require('@mocks/gl2d_axes_labels.json');
18+
plots['axes_lines'] = require('@mocks/gl2d_axes_lines.json');
19+
plots['axes_range_manual'] = require('@mocks/gl2d_axes_range_manual.json');
20+
plots['axes_range_type'] = require('@mocks/gl2d_axes_range_type.json');
21+
plots['axes_range_mode'] = require('@mocks/gl2d_axes_range_mode.json');
22+
plots['basic_error_bar'] = require('@mocks/gl2d_basic_error_bar.json');
23+
plots['bubble_markersize0'] = require('@mocks/gl2d_bubble_markersize0.json');
24+
plots['bubble_nonnumeric-sizes'] = require('@mocks/gl2d_bubble_nonnumeric-sizes.json');
25+
plots['date_axes'] = require('@mocks/gl2d_date_axes.json');
26+
plots['error_bar_asymmetric_array'] = require('@mocks/gl2d_error_bar_asymmetric_array.json');
27+
plots['error_bar_asymmetric_constant'] = require('@mocks/gl2d_error_bar_asymmetric_constant.json');
28+
plots['error_bar_horizontal'] = require('@mocks/gl2d_error_bar_horizontal.json');
29+
plots['error_bar_style'] = require('@mocks/gl2d_error_bar_style.json');
30+
plots['fonts'] = require('@mocks/gl2d_fonts.json');
31+
plots['global_font'] = require('@mocks/gl2d_global_font.json');
32+
plots['legend_inside'] = require('@mocks/gl2d_legend_inside.json');
33+
plots['legend_labels'] = require('@mocks/gl2d_legend_labels.json');
34+
plots['legend_outside'] = require('@mocks/gl2d_legend_outside.json');
35+
plots['legend_style'] = require('@mocks/gl2d_legend_style.json');
36+
plots['line_style'] = require('@mocks/gl2d_line_style.json');
37+
plots['multiple_subplots'] = require('@mocks/gl2d_multiple_subplots.json');
38+
plots['scatter-colorscale-colorbar'] = require('@mocks/gl2d_scatter-colorscale-colorbar.json');
39+
plots['scatter-marker-line-colorscales'] = require('@mocks/gl2d_scatter-marker-line-colorscales.json');
40+
plots['show_legend'] = require('@mocks/gl2d_show_legend.json');
41+
plots['simple_inset'] = require('@mocks/gl2d_simple_inset.json');
42+
plots['size_margins'] = require('@mocks/gl2d_size_margins.json');
43+
plots['stacked_coupled_subplots'] = require('@mocks/gl2d_stacked_coupled_subplots.json');
44+
plots['stacked_subplots'] = require('@mocks/gl2d_stacked_subplots.json');
45+
46+
plotButtons(plots, figDir);

devtools/test_dashboard/test_gl3d.js

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
var plotButtons = require('./buttons');
2+
3+
var figDir = '../../test/image/baselines/gl3d_';
4+
5+
var plots = {};
6+
7+
plots['bunny-hull'] = require('@mocks/gl3d_bunny-hull.json');
8+
plots['ibm-plot'] = require('@mocks/gl3d_ibm-plot.json');
9+
plots['marker-color'] = require('@mocks/gl3d_marker-color.json');
10+
plots['log-axis-big'] = require('@mocks/gl3d_log-axis-big.json');
11+
plots['delaunay'] = require('@mocks/gl3d_delaunay.json');
12+
plots['log-axis'] = require('@mocks/gl3d_log-axis.json');
13+
plots['multi-scene'] = require('@mocks/gl3d_multi-scene.json');
14+
plots['surface-lighting'] = require('@mocks/gl3d_surface-lighting.json');
15+
plots['z-range'] = require('@mocks/gl3d_z-range.json');
16+
plots['mirror-ticks'] = require('@mocks/gl3d_mirror-ticks.json');
17+
plots['autorange-zero'] = require('@mocks/gl3d_autorange-zero.json');
18+
plots['contour-lines'] = require('@mocks/gl3d_contour-lines.json');
19+
plots['xy-defined-ticks'] = require('@mocks/gl3d_xy-defined-ticks.json');
20+
plots['opacity-surface'] = require('@mocks/gl3d_opacity-surface.json');
21+
plots['projection-traces'] = require('@mocks/gl3d_projection-traces.json');
22+
plots['opacity-scaling-spikes'] = require('@mocks/gl3d_opacity-scaling-spikes.json');
23+
plots['text-weirdness'] = require('@mocks/gl3d_text-weirdness.json');
24+
plots['wire-surface'] = require('@mocks/gl3d_wire-surface.json');
25+
plots['triangle-mesh3d'] = require('@mocks/gl3d_triangle.json');
26+
plots['snowden'] = require('@mocks/gl3d_snowden.json');
27+
plots['bunny'] = require('@mocks/gl3d_bunny.json');
28+
plots['ribbons'] = require('@mocks/gl3d_ribbons.json');
29+
plots['date-time'] = require('@mocks/gl3d_scatter-date.json');
30+
plots['cufflinks'] = require('@mocks/gl3d_cufflinks.json');
31+
plots['chrisp-nan-1'] = require('@mocks/gl3d_chrisp-nan-1.json');
32+
plots['marker-arrays'] = require('@mocks/gl3d_marker-arrays.json');
33+
plots['scatter3d-colorscale'] = require('@mocks/gl3d_scatter3d-colorscale.json');
34+
plots['autocolorscale'] = require('@mocks/gl3d_autocolorscale.json');
35+
plots['nan-holes'] = require('@mocks/gl3d_nan-holes.json');
36+
37+
plotButtons(plots, figDir);

0 commit comments

Comments
 (0)