UNPKG

simple-ascii-chart

Version:
163 lines (162 loc) 5.64 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; Object.defineProperty(exports, "__esModule", { value: true }); var defaults_1 = require("../defaults"); var constants_1 = require("../../constants"); describe('Chart Helper Functions', function () { describe('getSymbols', function () { it('should return default symbols when none are provided', function () { var symbols = (0, defaults_1.getSymbols)({}); expect(symbols).toEqual({ axisSymbols: constants_1.AXIS, emptySymbol: constants_1.EMPTY, backgroundSymbol: constants_1.EMPTY, borderSymbol: undefined, }); }); it('should override default symbols when provided', function () { var customSymbols = { axis: { x: 'X', y: 'Y' }, empty: '-', background: '=', border: '#', }; var symbols = (0, defaults_1.getSymbols)({ symbols: customSymbols }); expect(symbols).toEqual({ axisSymbols: __assign(__assign({}, constants_1.AXIS), customSymbols.axis), emptySymbol: customSymbols.empty, backgroundSymbol: customSymbols.background, borderSymbol: customSymbols.border, }); }); }); describe('getChartSize', function () { it('should return default sizes when width and height are not provided', function () { var input = [ [ [1, 2], [2, 4], [3, 6], ], ]; var size = (0, defaults_1.getChartSize)({ input: input }); expect(size).toEqual({ minX: 1, minY: 2, plotWidth: 3, // length of rangeX plotHeight: 5, // maxY - minY + 1 expansionX: [1, 3], expansionY: [2, 6], }); }); it('should use provided width and height', function () { var input = [ [ [1, 2], [2, 4], [3, 6], ], ]; var size = (0, defaults_1.getChartSize)({ input: input, width: 10, height: 10 }); expect(size).toEqual({ minX: 1, minY: 2, plotWidth: 10, plotHeight: 10, expansionX: [1, 3], expansionY: [2, 6], }); }); it('should adjust for small values without height', function () { var input = [ [ [1, 2], [2, 4], ], ]; var size = (0, defaults_1.getChartSize)({ input: input }); expect(size).toEqual({ minX: 1, minY: 2, plotWidth: 2, // length of rangeX plotHeight: 3, // length of rangeY since it's less than 3 without provided height expansionX: [1, 2], expansionY: [2, 4], }); }); it('should handle a mix of positive and negative values', function () { var input = [ [ [-3, -2], [-2, 4], [0, 0], [3, -1], ], ]; var size = (0, defaults_1.getChartSize)({ input: input }); expect(size).toEqual({ minX: -3, minY: -2, plotWidth: 4, // length of rangeX plotHeight: 7, // maxY - minY + 1 expansionX: [-3, 3], expansionY: [-2, 4], }); }); }); describe('getLabelShift', function () { it('should calculate label shifts correctly', function () { var input = [ [ [1, 2], [3, 4], [5, 6], ], ]; var transformLabel = function (value) { return value.toString(); }; var result = (0, defaults_1.getLabelShift)({ input: input, transformLabel: transformLabel, expansionX: [1, 5], expansionY: [2, 6], minX: 1, }); expect(result.xShift).toBe(1); expect(result.yShift).toBe(1); }); }); describe('getInput', function () { it('should convert singleline input to multiline', function () { var input = [ [1, 2], [3, 4], ]; var result = (0, defaults_1.getInput)({ rawInput: input }); expect(result).toEqual([input]); }); it('should keep multiline input unchanged', function () { var input = [ [ [1, 2], [3, 4], ], [ [5, 6], [7, 8], ], ]; var result = (0, defaults_1.getInput)({ rawInput: input }); expect(result).toEqual(input); }); }); });