Skip to content

reproducible orca running image tests #3237

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 35 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
dfcb720
test software rendering on CI
antoinerg Nov 8, 2018
f79008a
add test-image-orca to workflow
antoinerg Nov 8, 2018
b0e4789
do no checkout source for test-image-orca
antoinerg Nov 8, 2018
75a9fcd
do checkout source for test-image-orca
antoinerg Nov 8, 2018
822a7df
baselines from local dev machine
antoinerg Nov 9, 2018
3cb8631
compare test images with baselines
antoinerg Nov 9, 2018
362769d
shuffle list of mocks to even out time of calculation per chunk
antoinerg Nov 9, 2018
eb4cde3
remove previous test-image jobs
antoinerg Nov 9, 2018
6bc3549
shuffle in a deterministic fashion
antoinerg Nov 9, 2018
02abebb
print out level of parallelism
antoinerg Nov 9, 2018
c360099
fix missing whitespace
antoinerg Nov 9, 2018
ca939fd
replace env variable CI with CIRCLECI
antoinerg Nov 9, 2018
a0f3d38
split work across nodes
antoinerg Nov 9, 2018
3aa1244
add parallelism
antoinerg Nov 9, 2018
d6543bf
bump parallelism to 8
antoinerg Nov 9, 2018
a21d0e7
reduce no_output_timeout to detect when orca freezes
antoinerg Nov 9, 2018
d23f8ed
support 3 digit parallelism number
antoinerg Nov 9, 2018
e178fd1
bump parallelism to 12
antoinerg Nov 9, 2018
cb52e30
update a few baselines with reproducible ones
antoinerg Nov 9, 2018
4a44a98
set parallelism back to 8
antoinerg Nov 9, 2018
b248309
retry if orca hangs
antoinerg Nov 12, 2018
b9ea11a
fix executable path
antoinerg Nov 12, 2018
18ba1a3
fix retry logic
antoinerg Nov 12, 2018
dff6773
orca-build-verify.sh accepts mock's name as command line argument
antoinerg Nov 12, 2018
d05fed0
double-check images that fail
antoinerg Nov 12, 2018
5a88f9d
comment runner code
antoinerg Nov 12, 2018
d86fa93
fix image paths
antoinerg Nov 12, 2018
bb0a91c
use plotly.js from build folder
antoinerg Nov 14, 2018
8dfe096
update baseline using current branch's plotly.js
antoinerg Nov 14, 2018
835e588
update another using currently built plotly.js
antoinerg Nov 14, 2018
ba050a0
use orca with MathJax support
antoinerg Nov 14, 2018
799d64a
delete diff images that perfectly match
antoinerg Nov 14, 2018
b3b56c3
update baselines containing MathJax now that it's enabled
antoinerg Nov 14, 2018
9779c46
update baselines after installing missing fonts
antoinerg Nov 14, 2018
70ea751
update baselines with pixelRatio forced to 2
antoinerg Nov 15, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
26 changes: 20 additions & 6 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,23 @@ jobs:
path: build
destination: /

test-image-orca:
docker:
- image: antoinerg/orca-reproducible:latest
parallelism: 8
working_directory: ~/plotly.js
steps:
- checkout
- attach_workspace:
at: ~/plotly.js
- run:
name: Run image tests
command: ./.circleci/retry-orca-build-verify.js
no_output_timeout: 2m
- store_artifacts:
path: build
destination: /

test-syntax:
docker:
- image: circleci/node:10.9.0
Expand Down Expand Up @@ -161,15 +178,12 @@ workflows:
- test-jasmine2:
requires:
- build
- test-image:
requires:
- build
- test-image2:
requires:
- build
- test-syntax:
requires:
- build
- publish:
requires:
- build
- test-image-orca:
requires:
- build
109 changes: 109 additions & 0 deletions .circleci/orca-build-verify.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
#!/usr/bin/env bash

ROOT=$(dirname $0)/..
MOCKS=$ROOT/test/image/mocks
BASELINES=$ROOT/test/image/baselines

TEST_IMAGES=$ROOT/build/test_images
DIFF_IMAGES=$ROOT/build/test_images_diff

get_mock_path()
{
echo "$MOCKS/$1.json"
}
export -f get_mock_path

get_image_path()
{
echo "$TEST_IMAGES/$1.png"
}

# Deterministic shuffling (https://www.gnu.org/software/coreutils/manual/html_node/Random-sources.html)
get_seeded_random()
{
seed="$1"
openssl enc -aes-256-ctr -pass pass:"$seed" -nosalt \
</dev/zero 2>/dev/null
}

deterministic_shuffle()
{
shuf --random-source=<(get_seeded_random "0")
}

if [ "$CIRCLECI" = true ];
then
echo "Work split across $CIRCLE_NODE_TOTAL nodes"
echo "Node index $CIRCLE_NODE_INDEX"
sleep 1
else
echo "Running locally"
CIRCLE_NODE_TOTAL=1
CIRCLE_NODE_INDEX=0
fi

rm -f /tmp/all
if [[ $# -eq 0 ]]; then
ls $MOCKS/*.json | xargs -I{} -n1 basename {} .json > /tmp/all
else
for var in "$@"
do
echo "$var" >> /tmp/all
done
fi

cat /tmp/all | \
# Shuffle to distribute randomly slow and fast mocks
deterministic_shuffle > /tmp/shuffled_all

# Split on each node
split -d -a3 -n l/$CIRCLE_NODE_TOTAL /tmp/shuffled_all /tmp/queue
NODE_QUEUE="/tmp/queue$(printf "%03d" $CIRCLE_NODE_INDEX)"

echo ""
function generate()
{
echo "Generating test images"
cat $1 | awk '!/mapbox/' | \
xargs -n1 -I{} echo "$MOCKS/{}.json" | \
# Split in chunks of 20
xargs -P1 -n20 xvfb-run -a orca graph --mathjax $ROOT/dist/extras/mathjax/MathJax.js --plotly $ROOT/build/plotly.js --verbose --output-dir $TEST_IMAGES
}
generate $NODE_QUEUE

function compare()
{
echo "Comparing with baselines"
cat $1 | awk '!/mapbox/' | \
#find $TEST_IMAGES -type f -name "*.png" -printf "%f\n" | \
# shuf | \
# sort | \
# head -n 20 | \
# xargs -n1 -P16 -I {} bash -c "echo {} && ./node_modules/.bin/pixelmatch $1/{} $2/{} diff/{} 0 true" | tee results.txt
xargs -n1 -P`nproc` -I {} bash -c "compare -verbose -metric AE $TEST_IMAGES/{}.png $BASELINES/{}.png $DIFF_IMAGES/{}.png 2> $DIFF_IMAGES/{}.txt"
}
compare $NODE_QUEUE

function delete_perfect_matches()
{
grep -l -R "all: 0" $DIFF_IMAGES/ | gawk '{match($0, /diff\/([^.]*)/, arr); print arr[1]}' > /tmp/succeeded
cat /tmp/succeeded | \
xargs -n1 -I {} rm $DIFF_IMAGES/{}.png $DIFF_IMAGES/{}.txt
}
delete_perfect_matches

CODE=$(grep -R "all: [^0]" $DIFF_IMAGES/ | wc -l)

# If there are different images, retry
if [ "$CODE" -ne "0" ]; then
grep -l -R "all: [^0]" $DIFF_IMAGES/ | gawk '{match($0, /diff\/([^.]*)/, arr); print arr[1]}' > /tmp/failed
echo "Retrying the following $CODE images"
cat /tmp/failed
generate /tmp/failed
compare /tmp/failed
delete_perfect_matches
CODE=$(grep -R "all: [^0]" $DIFF_IMAGES/ | wc -l)
fi

echo "$CODE different images"
exit $CODE
41 changes: 41 additions & 0 deletions .circleci/retry-orca-build-verify.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
#!/usr/bin/env node
var spawn = require('child_process').spawn;

// retry a given command if no standard output is produced within a given timeout
function retry(cmd, args, timeout, trials) {
if(trials === 0) {process.exit(1)}
var timer
function retryAfterTimeout() {
console.log(trials + ' trials left');
console.log('Retrying after no output for ' + timeout + ' seconds');
child.kill();
retry(cmd, args, timeout, --trials)
}

function setTimer() {
timer = setTimeout(retryAfterTimeout, timeout * 1000)
}

const child = spawn(cmd,args);
setTimer();

child.stdout.on('data', function(data) {
clearTimeout(timer);
setTimer()
console.log(data.toString());
})

child.on('error', function(err) {
console.log(err.toString());
retry(cmd, args, --trials)
})

child.on('close', function(code) {
console.log('Exit with code ' + code);
process.exit(code)
})
}

var args = process.argv
args.splice(0,2);
retry('.circleci/orca-build-verify.sh', args, 60, 5)
2 changes: 1 addition & 1 deletion src/lib/prepare_regl.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ module.exports = function prepareRegl(gd, extensions) {
antialias: !d.pick,
preserveDrawingBuffer: true
},
pixelRatio: gd._context.plotGlPixelRatio || global.devicePixelRatio,
pixelRatio: 2 || gd._context.plotGlPixelRatio || global.devicePixelRatio,
extensions: extensions || []
});
} catch(e) {
Expand Down
Binary file modified test/image/baselines/0.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified test/image/baselines/1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified test/image/baselines/10.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified test/image/baselines/11.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified test/image/baselines/12.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified test/image/baselines/13.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified test/image/baselines/14.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified test/image/baselines/15.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified test/image/baselines/16.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified test/image/baselines/17.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified test/image/baselines/18.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified test/image/baselines/19.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified test/image/baselines/20.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified test/image/baselines/21.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified test/image/baselines/22.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified test/image/baselines/23.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified test/image/baselines/24.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified test/image/baselines/25.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified test/image/baselines/26.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified test/image/baselines/27.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified test/image/baselines/28.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified test/image/baselines/29.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified test/image/baselines/2dhistogram_contour_subplots.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified test/image/baselines/30.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified test/image/baselines/31.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified test/image/baselines/32.png
Binary file modified test/image/baselines/4.png
Binary file modified test/image/baselines/5.png
Binary file modified test/image/baselines/6.png
Binary file modified test/image/baselines/7.png
Binary file modified test/image/baselines/8.png
Binary file modified test/image/baselines/airfoil.png
Binary file modified test/image/baselines/animation.png
Binary file modified test/image/baselines/annotations-autorange.png
Binary file modified test/image/baselines/annotations.png
Binary file modified test/image/baselines/autorange-tozero-rangemode.png
Binary file modified test/image/baselines/axes-autotype-empty.png
Binary file modified test/image/baselines/axes-ticks.png
Binary file modified test/image/baselines/axes_booleans.png
Binary file modified test/image/baselines/axes_category_ascending.png
Binary file modified test/image/baselines/axes_category_categoryarray.png
Binary file modified test/image/baselines/axes_category_descending.png
Binary file modified test/image/baselines/axes_category_descending_with_gaps.png
Binary file modified test/image/baselines/axes_category_null.png
Binary file modified test/image/baselines/axes_enumerated_ticks.png
Binary file modified test/image/baselines/axes_free_default.png
Binary file modified test/image/baselines/axes_labels.png
Binary file modified test/image/baselines/axes_line_noticklabels.png
Binary file modified test/image/baselines/axes_lines.png
Binary file modified test/image/baselines/axes_range_manual.png
Binary file modified test/image/baselines/axes_range_mode.png
Binary file modified test/image/baselines/axes_range_type.png
Binary file modified test/image/baselines/axes_reversed.png
Binary file modified test/image/baselines/axes_scaleanchor.png
Binary file modified test/image/baselines/axes_visible-false.png
Binary file modified test/image/baselines/axislabel_separatethousands.png
Binary file modified test/image/baselines/bar-colorscale-colorbar.png
Binary file modified test/image/baselines/bar-marker-line-colorscales.png
Binary file modified test/image/baselines/bar_and_histogram.png
Binary file modified test/image/baselines/bar_attrs_group.png
Binary file modified test/image/baselines/bar_attrs_group_norm.png
Binary file modified test/image/baselines/bar_attrs_overlay.png
Binary file modified test/image/baselines/bar_attrs_relative.png
Binary file modified test/image/baselines/bar_bargap0.png
Binary file modified test/image/baselines/bar_cliponaxis-false.png
Binary file modified test/image/baselines/bar_group_percent.png
Binary file modified test/image/baselines/bar_line.png
Binary file modified test/image/baselines/bar_marker_array.png
Binary file modified test/image/baselines/bar_multiline_labels.png
Binary file modified test/image/baselines/bar_nonnumeric_sizes.png
Binary file modified test/image/baselines/bar_stack-with-gaps.png
Binary file modified test/image/baselines/bar_stackrelative_negative.png
Binary file modified test/image/baselines/bar_stackrelativeto100_negative.png
Binary file modified test/image/baselines/bar_stackto1.png
Binary file modified test/image/baselines/bar_stackto100_negative.png
Binary file modified test/image/baselines/basic_area.png
Binary file modified test/image/baselines/basic_bar.png
Binary file modified test/image/baselines/basic_error_bar.png
Binary file modified test/image/baselines/basic_heatmap.png
Binary file modified test/image/baselines/basic_line.png
Binary file modified test/image/baselines/benchmarks.png
Binary file modified test/image/baselines/binding.png
Binary file modified test/image/baselines/blackbody_heatmap.png
Binary file modified test/image/baselines/bluered_heatmap.png
Binary file modified test/image/baselines/box_grouped.png
Binary file modified test/image/baselines/box_grouped_horz.png
Binary file modified test/image/baselines/box_horz_notched.png
Binary file modified test/image/baselines/box_notched.png
Binary file modified test/image/baselines/box_plot_jitter.png
Binary file modified test/image/baselines/box_plot_jitter_edge_cases.png
Binary file modified test/image/baselines/box_with-empty-1st-trace.png
Binary file modified test/image/baselines/boxplots_outliercolordflt.png
Binary file modified test/image/baselines/boxplots_undefined_vals.png
Binary file modified test/image/baselines/bubble_markersize0.png
Binary file modified test/image/baselines/bubble_nonnumeric-sizes.png
Binary file modified test/image/baselines/bubblechart.png
Binary file modified test/image/baselines/candlestick_double-y-axis.png
Binary file modified test/image/baselines/candlestick_rangeslider_thai.png
Binary file modified test/image/baselines/carpet_axis.png
Binary file modified test/image/baselines/carpet_template.png
Binary file modified test/image/baselines/category-autorange.png
Binary file modified test/image/baselines/category_dtick_3.png
Binary file modified test/image/baselines/cheater.png
Binary file modified test/image/baselines/cheater_constraint_greater_than.png
Binary file modified test/image/baselines/cheater_constraint_inner_range.png
Binary file modified test/image/baselines/cheater_constraint_inner_range_hi_top.png
Binary file modified test/image/baselines/cheater_constraint_inner_range_lo_top.png
Binary file modified test/image/baselines/cheater_constraint_less_than.png
Binary file modified test/image/baselines/cheater_constraint_less_than_with_hill.png
Binary file modified test/image/baselines/cheater_constraint_outer_range.png
Binary file modified test/image/baselines/cheater_constraint_outer_range_hi_top.png
Binary file modified test/image/baselines/cheater_constraint_outer_range_lo_top.png
Binary file modified test/image/baselines/cheater_constraints.png
Binary file modified test/image/baselines/cheater_contour.png
Binary file modified test/image/baselines/cheater_fully_filled.png
Binary file modified test/image/baselines/cheater_smooth.png
Binary file modified test/image/baselines/cheaterslope.png
Binary file modified test/image/baselines/cheaterslope_noticklabels.png
Binary file modified test/image/baselines/cividis_heatmap.png
Binary file modified test/image/baselines/cliponaxis_false-dates-log.png
Binary file modified test/image/baselines/cliponaxis_false.png
Binary file modified test/image/baselines/colorbar_enumerated_ticks.png
Binary file modified test/image/baselines/colorbar_tick_prefix_suffix.png
Binary file modified test/image/baselines/colorbar_tickformat.png
Binary file modified test/image/baselines/colorscale_constraint.png
Binary file modified test/image/baselines/colorscale_opacity.png
Binary file modified test/image/baselines/connectgaps_2d.png
Binary file modified test/image/baselines/contour_constraints.png
Binary file modified test/image/baselines/contour_doublemerge.png
Binary file modified test/image/baselines/contour_edge_cases.png
Binary file modified test/image/baselines/contour_heatmap_coloring.png
Binary file modified test/image/baselines/contour_label-thousands-suffix.png
Binary file modified test/image/baselines/contour_legend.png
Binary file modified test/image/baselines/contour_lines_coloring.png
Binary file modified test/image/baselines/contour_log.png
Binary file modified test/image/baselines/contour_match_edges.png
Binary file modified test/image/baselines/contour_nolines.png
Binary file modified test/image/baselines/contour_scatter.png
Binary file modified test/image/baselines/contour_transposed-irregular.png
Binary file modified test/image/baselines/contour_transposed.png
Binary file modified test/image/baselines/contour_valid_ses.png
Binary file modified test/image/baselines/contour_xyz-gaps-on-sides.png
Binary file modified test/image/baselines/custom_colorscale.png
Binary file modified test/image/baselines/custom_size_subplot.png
Binary file modified test/image/baselines/date_axes.png
Binary file modified test/image/baselines/date_histogram.png
Binary file modified test/image/baselines/dendrogram.png
Binary file modified test/image/baselines/earth_heatmap.png
Binary file modified test/image/baselines/electric_heatmap.png
Binary file modified test/image/baselines/empty.png
Binary file modified test/image/baselines/error_bar_asymmetric_array.png
Binary file modified test/image/baselines/error_bar_asymmetric_constant.png
Binary file modified test/image/baselines/error_bar_bar.png
Binary file modified test/image/baselines/error_bar_bar_ids.png
Binary file modified test/image/baselines/error_bar_horizontal.png
Binary file modified test/image/baselines/error_bar_layers.png
Binary file modified test/image/baselines/error_bar_sqrt.png
Binary file modified test/image/baselines/error_bar_style.png
Binary file modified test/image/baselines/fake_violins.png
Binary file modified test/image/baselines/finance_style.png
Binary file modified test/image/baselines/finance_subplots_categories.png
Binary file modified test/image/baselines/font-wishlist.png
Binary file modified test/image/baselines/fonts.png
Binary file modified test/image/baselines/geo_across-antimeridian.png
Binary file modified test/image/baselines/geo_africa-insets.png
Binary file modified test/image/baselines/geo_aitoff-sinusoidal.png
Binary file modified test/image/baselines/geo_bg-color.png
Binary file modified test/image/baselines/geo_big-frame.png
Binary file modified test/image/baselines/geo_bubbles-colorscales.png
Binary file modified test/image/baselines/geo_bubbles-sizeref.png
Binary file modified test/image/baselines/geo_canadian-cites.png
Binary file modified test/image/baselines/geo_centering.png
Binary file modified test/image/baselines/geo_choropleth-text.png
Binary file modified test/image/baselines/geo_choropleth-usa.png
Binary file modified test/image/baselines/geo_conic-conformal.png
Binary file modified test/image/baselines/geo_connectgaps.png
Binary file modified test/image/baselines/geo_country-names-text-chart.png
Binary file modified test/image/baselines/geo_country-names.png
Binary file modified test/image/baselines/geo_custom-colorscale.png
Binary file modified test/image/baselines/geo_europe-bubbles.png
Binary file modified test/image/baselines/geo_fill.png
Binary file modified test/image/baselines/geo_first.png
Binary file modified test/image/baselines/geo_kavrayskiy7.png
Binary file modified test/image/baselines/geo_legendonly.png
Binary file modified test/image/baselines/geo_miterlimit-base-layers.png
Binary file modified test/image/baselines/geo_multi-geos.png
Binary file modified test/image/baselines/geo_multiple-usa-choropleths.png
Binary file modified test/image/baselines/geo_orthographic.png
Binary file modified test/image/baselines/geo_point-selection.png
Binary file modified test/image/baselines/geo_scattergeo-locations.png
Binary file modified test/image/baselines/geo_scattergeo-out-of-usa.png
Binary file modified test/image/baselines/geo_second.png
Binary file modified test/image/baselines/geo_stereographic.png
Binary file modified test/image/baselines/geo_text_chart_arrays.png
Binary file modified test/image/baselines/geo_usa-states.png
Binary file modified test/image/baselines/geo_winkel-tripel.png
Binary file modified test/image/baselines/gl2d_10.png
Binary file modified test/image/baselines/gl2d_12.png
Binary file modified test/image/baselines/gl2d_14.png
Binary file modified test/image/baselines/gl2d_17.png
Binary file modified test/image/baselines/gl2d_annotations.png
Binary file modified test/image/baselines/gl2d_axes_booleans.png
Binary file modified test/image/baselines/gl2d_axes_labels.png
Binary file modified test/image/baselines/gl2d_axes_labels2.png
Binary file modified test/image/baselines/gl2d_axes_lines.png
Binary file modified test/image/baselines/gl2d_axes_range_manual.png
Binary file modified test/image/baselines/gl2d_axes_range_mode.png
Binary file modified test/image/baselines/gl2d_axes_range_type.png
Binary file modified test/image/baselines/gl2d_clean-number.png
Binary file modified test/image/baselines/gl2d_connect_gaps.png
Binary file modified test/image/baselines/gl2d_date_axes.png
Binary file modified test/image/baselines/gl2d_error_bars.png
Binary file modified test/image/baselines/gl2d_error_bars_log.png
Binary file modified test/image/baselines/gl2d_fill-ordering.png
Binary file modified test/image/baselines/gl2d_fill_trace_tozero_order.png
Binary file modified test/image/baselines/gl2d_fonts.png
Binary file modified test/image/baselines/gl2d_heatmapgl.png
Binary file modified test/image/baselines/gl2d_horiz-lines.png
Binary file modified test/image/baselines/gl2d_layout_image.png
Binary file modified test/image/baselines/gl2d_line_aligned.png
Binary file modified test/image/baselines/gl2d_line_dash.png
Binary file modified test/image/baselines/gl2d_line_limit.png
Binary file modified test/image/baselines/gl2d_line_select.png
Binary file modified test/image/baselines/gl2d_lines_almost_horizontal_vertical.png
Binary file modified test/image/baselines/gl2d_marker_line_width.png
Binary file modified test/image/baselines/gl2d_marker_size.png
Binary file modified test/image/baselines/gl2d_marker_symbols.png
Binary file modified test/image/baselines/gl2d_multiple-traces-axes-labels.png
Binary file modified test/image/baselines/gl2d_multiple-traces-axes.png
Binary file modified test/image/baselines/gl2d_multiple_subplots.png
Binary file modified test/image/baselines/gl2d_open_marker_line_width.png
Binary file modified test/image/baselines/gl2d_order_error.png
Binary file modified test/image/baselines/gl2d_parcoords.png
Binary file modified test/image/baselines/gl2d_parcoords_1.png
Binary file modified test/image/baselines/gl2d_parcoords_2.png
Binary file modified test/image/baselines/gl2d_parcoords_blocks.png
Binary file modified test/image/baselines/gl2d_parcoords_constraints.png
Binary file modified test/image/baselines/gl2d_parcoords_large.png
Binary file modified test/image/baselines/gl2d_point-selection.png
Binary file modified test/image/baselines/gl2d_pointcloud-basic.png
Binary file modified test/image/baselines/gl2d_scatter-color-clustering.png
Binary file modified test/image/baselines/gl2d_scatter-colorscale-colorbar.png
Binary file modified test/image/baselines/gl2d_scatter-colorscale-points.png
Binary file modified test/image/baselines/gl2d_scatter-continuous-clustering.png
Binary file modified test/image/baselines/gl2d_scatter-marker-line-colorscales.png
Binary file modified test/image/baselines/gl2d_scatter-subplot-panel.png
Binary file modified test/image/baselines/gl2d_scatter_fill_self_next.png
Binary file modified test/image/baselines/gl2d_scatter_fill_self_next_vs_nogl.png
Binary file modified test/image/baselines/gl2d_selectedpoints.png
Binary file modified test/image/baselines/gl2d_shape_line.png
Binary file modified test/image/baselines/gl2d_shapes_below_traces.png
Binary file modified test/image/baselines/gl2d_simple_inset.png
Binary file modified test/image/baselines/gl2d_size_margins.png
Binary file modified test/image/baselines/gl2d_stacked_coupled_subplots.png
Binary file modified test/image/baselines/gl2d_stacked_subplots.png
Binary file modified test/image/baselines/gl2d_subplots_anchor.png
Binary file modified test/image/baselines/gl2d_text_chart_arrays.png
Binary file modified test/image/baselines/gl2d_text_chart_basic.png
Binary file modified test/image/baselines/gl2d_text_chart_invalid-arrays.png
Binary file modified test/image/baselines/gl2d_text_chart_single-string.png
Binary file modified test/image/baselines/gl2d_text_chart_styling.png
Binary file modified test/image/baselines/gl2d_tick-labels.png
Binary file modified test/image/baselines/gl2d_transforms.png
Binary file modified test/image/baselines/gl2d_ultra_zoom.png
Binary file modified test/image/baselines/gl3d_annotations.png
Binary file modified test/image/baselines/gl3d_autocolorscale.png
Binary file modified test/image/baselines/gl3d_autorange-zero.png
Binary file modified test/image/baselines/gl3d_axes-visible-false.png
Binary file modified test/image/baselines/gl3d_bunny-hull.png
Binary file modified test/image/baselines/gl3d_bunny.png
Binary file modified test/image/baselines/gl3d_chrisp-nan-1.png
Binary file modified test/image/baselines/gl3d_cone-absolute.png
Binary file modified test/image/baselines/gl3d_cone-autorange.png
Binary file modified test/image/baselines/gl3d_cone-lighting.png
Binary file modified test/image/baselines/gl3d_cone-newplot_reversed_ranges.png
Binary file modified test/image/baselines/gl3d_cone-rossler.png
Binary file modified test/image/baselines/gl3d_cone-simple.png
Binary file modified test/image/baselines/gl3d_cone-single.png
Binary file modified test/image/baselines/gl3d_cone-wind.png
Loading