import { Class, HTMLWidget, SVGWidget } from "@hpcc-js/common"; import * as tree from "@hpcc-js/tree"; // tslint:disable-next-line: no-duplicate-imports import { CirclePacking, Dendrogram, Indented, SunburstPartition, Treemap } from "@hpcc-js/tree"; import { expect } from "chai"; import { classDef, render } from "../../test-data/src/index"; const urlSearch: string = window.location.href.split("?")[1]; const flare = { data: { label: "root", children: [ { label: "analytics", children: [ { label: "cluster", children: [ { label: "AgglomerativeCluster", size: 3938 }, { label: "CommunityStructure", size: 3812 }, { label: "HierarchicalCluster", size: 6714 }, { label: "MergeEdge", size: 743 } ] }, { label: "graph", children: [ { label: "BetweennessCentrality", size: 3534 }, { label: "LinkDistance", size: 5731 }, { label: "MaxFlowMinCut", size: 7840 }, { label: "ShortestPaths", size: 5914 }, { label: "SpanningTree", size: 3416 } ] }, { label: "optimization", children: [ { label: "AspectRatioBanker", size: 7074 } ] } ] }, { label: "animate", children: [ { label: "Easing", size: 17010 }, { label: "FunctionSequence", size: 5842 }, { label: "interpolate", children: [ { label: "ArrayInterpolator", size: 1983 }, { label: "ColorInterpolator", size: 2047 }, { label: "DateInterpolator", size: 1375 }, { label: "Interpolator", size: 8746 }, { label: "MatrixInterpolator", size: 2202 }, { label: "NumberInterpolator", size: 1382 }, { label: "ObjectInterpolator", size: 1629 }, { label: "PointInterpolator", size: 1675 }, { label: "RectangleInterpolator", size: 2042 } ] }, { label: "ISchedulable", size: 1041 }, { label: "Parallel", size: 5176 }, { label: "Pause", size: 449 }, { label: "Scheduler", size: 5593 }, { label: "Sequence", size: 5534 }, { label: "Transition", size: 9201 }, { label: "Transitioner", size: 19975 }, { label: "TransitionEvent", size: 1116 }, { label: "Tween", size: 6006 } ] }, { label: "data", children: [ { label: "converters", children: [ { label: "Converters", size: 721 }, { label: "DelimitedTextConverter", size: 4294 }, { label: "GraphMLConverter", size: 9800 }, { label: "IDataConverter", size: 1314 }, { label: "JSONConverter", size: 2220 } ] }, { label: "DataField", size: 1759 }, { label: "DataSchema", size: 2165 }, { label: "DataSet", size: 586 }, { label: "DataSource", size: 3331 }, { label: "DataTable", size: 772 }, { label: "DataUtil", size: 3322 } ] }, { label: "display", children: [ { label: "DirtySprite", size: 8833 }, { label: "LineSprite", size: 1732 }, { label: "RectSprite", size: 3623 }, { label: "TextSprite", size: 10066 } ] }, { label: "flex", children: [ { label: "FlareVis", size: 4116 } ] }, { label: "physics", children: [ { label: "DragForce", size: 1082 }, { label: "GravityForce", size: 1336 }, { label: "IForce", size: 319 }, { label: "NBodyForce", size: 10498 }, { label: "Particle", size: 2822 }, { label: "Simulation", size: 9983 }, { label: "Spring", size: 2213 }, { label: "SpringForce", size: 1681 } ] }, { label: "query", children: [ { label: "AggregateExpression", size: 1616 }, { label: "And", size: 1027 }, { label: "Arithmetic", size: 3891 }, { label: "Average", size: 891 }, { label: "BinaryExpression", size: 2893 }, { label: "Comparison", size: 5103 }, { label: "CompositeExpression", size: 3677 }, { label: "Count", size: 781 }, { label: "DateUtil", size: 4141 }, { label: "Distinct", size: 933 }, { label: "Expression", size: 5130 }, { label: "ExpressionIterator", size: 3617 }, { label: "Fn", size: 3240 }, { label: "If", size: 2732 }, { label: "IsA", size: 2039 }, { label: "Literal", size: 1214 }, { label: "Match", size: 3748 }, { label: "Maximum", size: 843 }, { label: "methods", children: [ { label: "add", size: 593 }, { label: "and", size: 330 }, { label: "average", size: 287 }, { label: "count", size: 277 }, { label: "distinct", size: 292 }, { label: "div", size: 595 }, { label: "eq", size: 594 }, { label: "fn", size: 460 }, { label: "gt", size: 603 }, { label: "gte", size: 625 }, { label: "iff", size: 748 }, { label: "isa", size: 461 }, { label: "lt", size: 597 }, { label: "lte", size: 619 }, { label: "max", size: 283 }, { label: "min", size: 283 }, { label: "mod", size: 591 }, { label: "mul", size: 603 }, { label: "neq", size: 599 }, { label: "not", size: 386 }, { label: "or", size: 323 }, { label: "orderby", size: 307 }, { label: "range", size: 772 }, { label: "select", size: 296 }, { label: "stddev", size: 363 }, { label: "sub", size: 600 }, { label: "sum", size: 280 }, { label: "update", size: 307 }, { label: "variance", size: 335 }, { label: "where", size: 299 }, { label: "xor", size: 354 }, { label: "_", size: 264 } ] }, { label: "Minimum", size: 843 }, { label: "Not", size: 1554 }, { label: "Or", size: 970 }, { label: "Query", size: 13896 }, { label: "Range", size: 1594 }, { label: "StringUtil", size: 4130 }, { label: "Sum", size: 791 }, { label: "Variable", size: 1124 }, { label: "Variance", size: 1876 }, { label: "Xor", size: 1101 } ] }, { label: "scale", children: [ { label: "IScaleMap", size: 2105 }, { label: "LinearScale", size: 1316 }, { label: "LogScale", size: 3151 }, { label: "OrdinalScale", size: 3770 }, { label: "QuantileScale", size: 2435 }, { label: "QuantitativeScale", size: 4839 }, { label: "RootScale", size: 1756 }, { label: "Scale", size: 4268 }, { label: "ScaleType", size: 1821 }, { label: "TimeScale", size: 5833 } ] }, { label: "util", children: [ { label: "Arrays", size: 8258 }, { label: "Colors", size: 10001 }, { label: "Dates", size: 8217 }, { label: "Displays", size: 12555 }, { label: "Filter", size: 2324 }, { label: "Geometry", size: 10993 }, { label: "heap", children: [ { label: "FibonacciHeap", size: 9354 }, { label: "HeapNode", size: 1233 } ] }, { label: "IEvaluable", size: 335 }, { label: "IPredicate", size: 383 }, { label: "IValueProxy", size: 874 }, { label: "math", children: [ { label: "DenseMatrix", size: 3165 }, { label: "IMatrix", size: 2815 }, { label: "SparseMatrix", size: 3366 } ] }, { label: "Maths", size: 17705 }, { label: "Orientation", size: 1486 }, { label: "palette", children: [ { label: "ColorPalette", size: 6367 }, { label: "Palette", size: 1229 }, { label: "ShapePalette", size: 2059 }, { label: "SizePalette", size: 2291 } ] }, { label: "Property", size: 5559 }, { label: "Shapes", size: 19118 }, { label: "Sort", size: 6887 }, { label: "Stats", size: 6557 }, { label: "Strings", size: 22026 } ] }, { label: "vis", children: [ { label: "axis", children: [ { label: "Axes", size: 1302 }, { label: "Axis", size: 24593 }, { label: "AxisGridLine", size: 652 }, { label: "AxisLabel", size: 636 }, { label: "CartesianAxes", size: 6703 } ] }, { label: "controls", children: [ { label: "AnchorControl", size: 2138 }, { label: "ClickControl", size: 3824 }, { label: "Control", size: 1353 }, { label: "ControlList", size: 4665 }, { label: "DragControl", size: 2649 }, { label: "ExpandControl", size: 2832 }, { label: "HoverControl", size: 4896 }, { label: "IControl", size: 763 }, { label: "PanZoomControl", size: 5222 }, { label: "SelectionControl", size: 7862 }, { label: "TooltipControl", size: 8435 } ] }, { label: "data", children: [ { label: "Data", size: 20544 }, { label: "DataList", size: 19788 }, { label: "DataSprite", size: 10349 }, { label: "EdgeSprite", size: 3301 }, { label: "NodeSprite", size: 19382 }, { label: "render", children: [ { label: "ArrowType", size: 698 }, { label: "EdgeRenderer", size: 5569 }, { label: "IRenderer", size: 353 }, { label: "ShapeRenderer", size: 2247 } ] }, { label: "ScaleBinding", size: 11275 }, { label: "Tree", size: 7147 }, { label: "TreeBuilder", size: 9930 } ] }, { label: "events", children: [ { label: "DataEvent", size: 2313 }, { label: "SelectionEvent", size: 1880 }, { label: "TooltipEvent", size: 1701 }, { label: "VisualizationEvent", size: 1117 } ] }, { label: "legend", children: [ { label: "Legend", size: 20859 }, { label: "LegendItem", size: 4614 }, { label: "LegendRange", size: 10530 } ] }, { label: "operator", children: [ { label: "distortion", children: [ { label: "BifocalDistortion", size: 4461 }, { label: "Distortion", size: 6314 }, { label: "FisheyeDistortion", size: 3444 } ] }, { label: "encoder", children: [ { label: "ColorEncoder", size: 3179 }, { label: "Encoder", size: 4060 }, { label: "PropertyEncoder", size: 4138 }, { label: "ShapeEncoder", size: 1690 }, { label: "SizeEncoder", size: 1830 } ] }, { label: "filter", children: [ { label: "FisheyeTreeFilter", size: 5219 }, { label: "GraphDistanceFilter", size: 3165 }, { label: "VisibilityFilter", size: 3509 } ] }, { label: "IOperator", size: 1286 }, { label: "label", children: [ { label: "Labeler", size: 9956 }, { label: "RadialLabeler", size: 3899 }, { label: "StackedAreaLabeler", size: 3202 } ] }, { label: "layout", children: [ { label: "AxisLayout", size: 6725 }, { label: "BundledEdgeRouter", size: 3727 }, { label: "CircleLayout", size: 9317 }, { label: "CirclePackingLayout", size: 12003 }, { label: "DendrogramLayout", size: 4853 }, { label: "ForceDirectedLayout", size: 8411 }, { label: "IcicleTreeLayout", size: 4864 }, { label: "IndentedTreeLayout", size: 3174 }, { label: "Layout", size: 7881 }, { label: "NodeLinkTreeLayout", size: 12870 }, { label: "PieLayout", size: 2728 }, { label: "RadialTreeLayout", size: 12348 }, { label: "RandomLayout", size: 870 }, { label: "StackedAreaLayout", size: 9121 }, { label: "TreeMapLayout", size: 9191 } ] }, { label: "Operator", size: 2490 }, { label: "OperatorList", size: 5248 }, { label: "OperatorSequence", size: 4190 }, { label: "OperatorSwitch", size: 2581 }, { label: "SortOperator", size: 2023 } ] }, { label: "Visualization", size: 16540 } ] } ] } }; describe("@hpcc-js/tree", () => { for (const key in tree) { const item = (tree as any)[key]; if (item) { if (!urlSearch || urlSearch === item.prototype.constructor.name) { describe(`${item.prototype.constructor.name}`, () => { if (item.prototype instanceof Class) { classDef("tree", item); } if (item.prototype instanceof HTMLWidget || item.prototype instanceof SVGWidget) { switch (item.prototype.constructor) { case CirclePacking: render(new CirclePacking() .data(flare.data) ); break; case Dendrogram: render(new Dendrogram() .data(flare.data) ); break; case Indented: render(new Indented() .columns(["label", "size"]) .data(flare.data) ); break; case SunburstPartition: render(new SunburstPartition() .data(flare.data) ); break; case Treemap: render(new Treemap() .columns(["label", "size"]) .data(flare.data) ); break; default: it("Has render test", () => { expect(false).to.be.true; }); } } }); } } } });