UNPKG

accurate-beeswarm-plot

Version:
46 lines (38 loc) 1.51 kB
import { AccurateBeeswarm } from './accurate-beeswarm-plot.js'; let data = [{value: 2, name: "A"}, {value: 3, name: "B"}]; let radius = 5; let fn = d => d.value; let result = new AccurateBeeswarm(data, radius, fn) .calculateYPositions(); assertYValues(result, [0, 9.9498743710662]); data = [{value: 2, name: "A"}, {value: 2, name: "B"}]; result = new AccurateBeeswarm(data, radius, fn) .calculateYPositions(); assertYValues(result, [0, 10]); data = [{value: 2, name: "A"}, {value: 2, name: "B"}]; result = new AccurateBeeswarm(data, radius, fn) .withTiesBrokenRandomly() .calculateYPositions(); assertYValues(result, [10, 0]); data = [{value: 3, name: "A"}, {value: 2, name: "B"}]; result = new AccurateBeeswarm(data, radius, fn) .calculateYPositions(); assertYValues(result, [9.9498743710662, 0]); data = [{value: 3, name: "A"}, {value: 2, name: "B"}]; result = new AccurateBeeswarm(data, radius, fn) .withTiesBrokenByArrayOrder() .calculateYPositions(); assertYValues(result, [0, 9.9498743710662]); console.log("All tests passed."); function assertYValues(actual, expected) { for (let i=0; i<actual.length; i++) { if (Math.abs(actual[i].y - expected[i]) > 0.00000001) { console.log('Actual:'); console.log(actual); console.log('Expected:'); console.log(expected); console.log(`These differ at item ${i}.`); throw new Error("Unexpected y values."); } } }