| /* | |
| * Licensed to the Apache Software Foundation (ASF) under one | |
| * or more contributor license agreements. See the NOTICE file | |
| * distributed with this work for additional information | |
| * regarding copyright ownership. The ASF licenses this file | |
| * to you under the Apache License, Version 2.0 (the | |
| * "License"); you may not use this file except in compliance | |
| * with the License. You may obtain a copy of the License at | |
| * | |
| * http://www.apache.org/licenses/LICENSE-2.0 | |
| * | |
| * Unless required by applicable law or agreed to in writing, | |
| * software distributed under the License is distributed on an | |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |
| * KIND, either express or implied. See the License for the | |
| * specific language governing permissions and limitations | |
| * under the License. | |
| */ | |
| import SeriesDimensionDefine from '@/src/data/SeriesDimensionDefine'; | |
| import createDimensions from '@/src/data/helper/createDimensions'; | |
| import { createSource } from '@/src/data/Source'; | |
| import { SOURCE_FORMAT_ARRAY_ROWS, SERIES_LAYOUT_BY_COLUMN } from '@/src/util/types'; | |
| type ParametersOfCreateDimensions = Parameters<typeof createDimensions>; | |
| describe('createDimensions', function () { | |
| function doCreateDimensions( | |
| source: ParametersOfCreateDimensions[0], | |
| opt: ParametersOfCreateDimensions[1] | |
| ): SeriesDimensionDefine[] { | |
| const result = createDimensions(source, opt); | |
| for (let i = 0; i < result.dimensions.length; i++) { | |
| const item = result.dimensions[i]; | |
| if (item && item.hasOwnProperty('dimsDef') && (item as any).dimsDef == null) { | |
| delete (item as any).dimsDef; | |
| } | |
| } | |
| return result.dimensions; | |
| } | |
| it('namesMoreThanDimCount', function () { | |
| const sysDims = [ | |
| { | |
| 'name': 'x', | |
| 'type': 'ordinal' as const, | |
| 'otherDims': { | |
| 'tooltip': false as const, | |
| 'itemName': 0 | |
| }, | |
| 'dimsDef': [ | |
| 'base' | |
| ] | |
| }, | |
| { | |
| 'name': 'y', | |
| 'type': 'float' as const, | |
| 'dimsDef': [ | |
| 'open', | |
| 'close', | |
| 'lowest', | |
| 'highest' | |
| ] | |
| } | |
| ]; | |
| const source = createSource( | |
| [ | |
| [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] | |
| ], | |
| { | |
| seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN, | |
| sourceHeader: 0, | |
| dimensions: void 0 | |
| }, | |
| SOURCE_FORMAT_ARRAY_ROWS | |
| ); | |
| const opt = { | |
| 'coordDimensions': sysDims, | |
| 'dimensionsDefine': [ | |
| { | |
| 'name': 'date', | |
| 'displayName': 'date' | |
| }, | |
| { | |
| 'name': 'open', | |
| 'displayName': 'open' | |
| }, | |
| { | |
| 'name': 'high', | |
| 'displayName': 'high' | |
| }, | |
| { | |
| 'name': 'low', | |
| 'displayName': 'low' | |
| }, | |
| { | |
| 'name': 'close', | |
| 'displayName': 'close' | |
| }, | |
| { | |
| 'name': 'volume', | |
| 'displayName': 'volume' | |
| }, | |
| { | |
| 'name': 'haOpen', | |
| 'displayName': 'haOpen' | |
| }, | |
| { | |
| 'name': 'haHigh', | |
| 'displayName': 'haHigh' | |
| }, | |
| { | |
| 'name': 'haLow', | |
| 'displayName': 'haLow' | |
| }, | |
| { | |
| 'name': 'haClose', | |
| 'displayName': 'haClose' | |
| }, | |
| { | |
| 'name': 'sma9', | |
| 'displayName': 'sma9' | |
| } | |
| ], | |
| 'encodeDefine': { | |
| 'x': 'date', | |
| 'y': [ | |
| 'haOpen', | |
| 'haClose', | |
| 'haLow', | |
| 'haHigh' | |
| ], | |
| 'tooltip': [ | |
| 'open', | |
| 'high', | |
| 'low', | |
| 'close' | |
| ] | |
| }, | |
| 'dimensionsCount': 5 | |
| }; | |
| const result: SeriesDimensionDefine[] = [ | |
| { | |
| 'otherDims': { | |
| 'tooltip': false, | |
| 'itemName': 0 | |
| }, | |
| 'displayName': 'date', | |
| 'name': 'date', | |
| 'coordDim': 'x', | |
| 'coordDimIndex': 0, | |
| 'type': 'ordinal', | |
| 'storeDimIndex': 0 | |
| }, | |
| { | |
| 'otherDims': { | |
| 'tooltip': 0 | |
| }, | |
| 'displayName': 'open', | |
| 'name': 'open', | |
| 'coordDim': 'value', | |
| 'coordDimIndex': 0, | |
| 'isExtraCoord': true, | |
| 'storeDimIndex': 1 | |
| }, | |
| { | |
| 'otherDims': { | |
| 'tooltip': 1 | |
| }, | |
| 'displayName': 'high', | |
| 'name': 'high', | |
| 'coordDim': 'value0', | |
| 'coordDimIndex': 0, | |
| 'isExtraCoord': true, | |
| 'storeDimIndex': 2 | |
| }, | |
| { | |
| 'otherDims': { | |
| 'tooltip': 2 | |
| }, | |
| 'displayName': 'low', | |
| 'name': 'low', | |
| 'coordDim': 'value1', | |
| 'coordDimIndex': 0, | |
| 'isExtraCoord': true, | |
| 'storeDimIndex': 3 | |
| }, | |
| { | |
| 'otherDims': { | |
| 'tooltip': 3 | |
| }, | |
| 'displayName': 'close', | |
| 'name': 'close', | |
| 'coordDim': 'value2', | |
| 'coordDimIndex': 0, | |
| 'isExtraCoord': true, | |
| 'storeDimIndex': 4 | |
| }, | |
| { | |
| 'otherDims': {}, | |
| 'displayName': 'volume', | |
| 'name': 'volume', | |
| 'coordDim': 'value3', | |
| 'coordDimIndex': 0, | |
| 'isExtraCoord': true, | |
| 'storeDimIndex': 5 | |
| }, | |
| { | |
| 'otherDims': {}, | |
| 'displayName': 'haOpen', | |
| 'name': 'haOpen', | |
| 'coordDim': 'y', | |
| 'coordDimIndex': 0, | |
| 'type': 'float', | |
| 'storeDimIndex': 6 | |
| }, | |
| { | |
| 'otherDims': {}, | |
| 'displayName': 'haHigh', | |
| 'name': 'haHigh', | |
| 'coordDim': 'y', | |
| 'coordDimIndex': 3, | |
| 'type': 'float', | |
| 'storeDimIndex': 7 | |
| }, | |
| { | |
| 'otherDims': {}, | |
| 'displayName': 'haLow', | |
| 'name': 'haLow', | |
| 'coordDim': 'y', | |
| 'coordDimIndex': 2, | |
| 'type': 'float', | |
| 'storeDimIndex': 8 | |
| }, | |
| { | |
| 'otherDims': {}, | |
| 'displayName': 'haClose', | |
| 'name': 'haClose', | |
| 'coordDim': 'y', | |
| 'coordDimIndex': 1, | |
| 'type': 'float', | |
| 'storeDimIndex': 9 | |
| }, | |
| { | |
| 'otherDims': {}, | |
| 'displayName': 'sma9', | |
| 'name': 'sma9', | |
| 'coordDim': 'value4', | |
| 'coordDimIndex': 0, | |
| 'isExtraCoord': true, | |
| 'storeDimIndex': 10 | |
| } | |
| ]; | |
| expect(doCreateDimensions(source, opt)).toEqual(result.map(a => new SeriesDimensionDefine(a))); | |
| }); | |
| it('differentData', function () { | |
| function doTest( | |
| source: ParametersOfCreateDimensions[0], | |
| opt: ParametersOfCreateDimensions[1], | |
| result: SeriesDimensionDefine[] | |
| ) { | |
| expect(doCreateDimensions(source, opt)).toEqual(result.map(a => new SeriesDimensionDefine(a))); | |
| } | |
| // test dimcount | |
| doTest([], { coordDimensions: ['x', 'y']}, [ | |
| { | |
| 'otherDims': {}, | |
| 'coordDim': 'x', | |
| 'coordDimIndex': 0, | |
| 'name': 'x', | |
| 'storeDimIndex': 0 | |
| }, | |
| { | |
| 'otherDims': {}, | |
| 'coordDim': 'y', | |
| 'coordDimIndex': 0, | |
| 'name': 'y', | |
| 'storeDimIndex': 1 | |
| } | |
| ]); | |
| doTest([12], { coordDimensions: ['x', 'y']}, [ | |
| { | |
| 'otherDims': {}, | |
| 'coordDim': 'x', | |
| 'coordDimIndex': 0, | |
| 'name': 'x', | |
| 'storeDimIndex': 0 | |
| }, | |
| { | |
| 'otherDims': {}, | |
| 'coordDim': 'y', | |
| 'coordDimIndex': 0, | |
| 'name': 'y', | |
| 'storeDimIndex': 1 | |
| } | |
| ]); | |
| doTest([12, 4], { coordDimensions: ['x', 'y']}, [ | |
| { | |
| 'otherDims': {}, | |
| 'coordDim': 'x', | |
| 'coordDimIndex': 0, | |
| 'name': 'x', | |
| 'storeDimIndex': 0 | |
| }, | |
| { | |
| 'otherDims': {}, | |
| 'coordDim': 'y', | |
| 'coordDimIndex': 0, | |
| 'name': 'y', | |
| 'storeDimIndex': 1 | |
| } | |
| ]); | |
| doTest([[32, 55]], { coordDimensions: ['x']}, [ | |
| { | |
| 'otherDims': {}, | |
| 'coordDim': 'x', | |
| 'coordDimIndex': 0, | |
| 'name': 'x', | |
| 'storeDimIndex': 0 | |
| } | |
| ]); | |
| doTest([[32, 55]], { coordDimensions: ['x', 'y', 'z']}, [ | |
| { | |
| 'otherDims': {}, | |
| 'coordDim': 'x', | |
| 'coordDimIndex': 0, | |
| 'name': 'x', | |
| 'storeDimIndex': 0 | |
| }, | |
| { | |
| 'otherDims': {}, | |
| 'coordDim': 'y', | |
| 'coordDimIndex': 0, | |
| 'name': 'y', | |
| 'storeDimIndex': 1 | |
| }, | |
| { | |
| 'otherDims': {}, | |
| 'coordDim': 'z', | |
| 'coordDimIndex': 0, | |
| 'name': 'z', | |
| 'storeDimIndex': 2 | |
| } | |
| ]); | |
| doTest([[32, 55], [99, 11]], { coordDimensions: ['x']}, [ | |
| { | |
| 'otherDims': {}, | |
| 'coordDim': 'x', | |
| 'coordDimIndex': 0, | |
| 'name': 'x', | |
| 'storeDimIndex': 0 | |
| } | |
| ]); | |
| doTest([[32, 55], [99, 11]], { | |
| dimensionsCount: 4, | |
| coordDimensions: ['x', 'y'] | |
| }, [ | |
| { | |
| 'otherDims': {}, | |
| 'coordDim': 'x', | |
| 'coordDimIndex': 0, | |
| 'name': 'x', | |
| 'storeDimIndex': 0 | |
| }, | |
| { | |
| 'otherDims': {}, | |
| 'coordDim': 'y', | |
| 'coordDimIndex': 0, | |
| 'name': 'y', | |
| 'storeDimIndex': 1 | |
| }, | |
| { | |
| 'otherDims': {}, | |
| 'coordDim': 'value', | |
| 'coordDimIndex': 0, | |
| 'isExtraCoord': true, | |
| 'name': 'value', | |
| 'storeDimIndex': 2 | |
| }, | |
| { | |
| 'otherDims': {}, | |
| 'coordDim': 'value0', | |
| 'coordDimIndex': 0, | |
| 'isExtraCoord': true, | |
| 'name': 'value0', | |
| 'storeDimIndex': 3 | |
| } | |
| ]); | |
| }); | |
| it('differentSysDims', function () { | |
| function doTest( | |
| source: ParametersOfCreateDimensions[0], | |
| opt: ParametersOfCreateDimensions[1], | |
| result: SeriesDimensionDefine[] | |
| ) { | |
| expect(doCreateDimensions(source, opt)).toEqual(result.map(a => new SeriesDimensionDefine(a))); | |
| } | |
| const data = [ | |
| ['iw', 332, 4434, 323, 59], | |
| ['vrr', 44, 11, 144, 55] | |
| ]; | |
| doTest( | |
| data, { coordDimensions: ['x', 'y'] }, | |
| [ | |
| { | |
| 'otherDims': {}, | |
| 'coordDim': 'x', | |
| 'coordDimIndex': 0, | |
| 'name': 'x', | |
| 'type': 'ordinal', | |
| 'storeDimIndex': 0 | |
| }, | |
| { | |
| 'otherDims': {}, | |
| 'coordDim': 'y', | |
| 'coordDimIndex': 0, | |
| 'name': 'y', | |
| 'storeDimIndex': 1 | |
| } | |
| ] | |
| ); | |
| doTest( | |
| data, { coordDimensions: ['value'] }, | |
| [ | |
| { | |
| 'otherDims': {}, | |
| 'coordDim': 'value', | |
| 'coordDimIndex': 0, | |
| 'name': 'value', | |
| 'type': 'ordinal', | |
| 'storeDimIndex': 0 | |
| } | |
| ] | |
| ); | |
| doTest( | |
| data, | |
| { coordDimensions: [{name: 'time', type: 'time' as const}, 'value'] }, | |
| [ | |
| { | |
| 'otherDims': {}, | |
| 'name': 'time', | |
| 'type': 'time', | |
| 'coordDimIndex': 0, | |
| 'ordinalMeta': undefined, | |
| 'coordDim': 'time', | |
| 'storeDimIndex': 0 | |
| }, | |
| { | |
| 'otherDims': {}, | |
| 'coordDim': 'value', | |
| 'coordDimIndex': 0, | |
| 'name': 'value', | |
| 'storeDimIndex': 1 | |
| } | |
| ] | |
| ); | |
| doTest( | |
| data, { | |
| coordDimensions: [{ | |
| name: 'y', | |
| otherDims: { | |
| tooltip: false | |
| }, | |
| dimsDef: ['base'] | |
| }, { | |
| name: 'x', | |
| dimsDef: ['open', 'close'] | |
| }] | |
| }, | |
| [ | |
| { | |
| 'otherDims': { | |
| 'tooltip': false | |
| }, | |
| 'name': 'base', | |
| 'defaultTooltip': undefined, | |
| 'coordDimIndex': 0, | |
| 'coordDim': 'y', | |
| 'type': 'ordinal', | |
| 'displayName': 'base', | |
| 'ordinalMeta': undefined, | |
| 'storeDimIndex': 0 | |
| }, | |
| { | |
| 'otherDims': {}, | |
| 'name': 'open', | |
| 'ordinalMeta': undefined, | |
| 'defaultTooltip': undefined, | |
| 'coordDimIndex': 0, | |
| 'coordDim': 'x', | |
| 'displayName': 'open', | |
| 'storeDimIndex': 1 | |
| } | |
| ] | |
| ); | |
| doTest( | |
| data, { | |
| dimensionsDefine: ['基础', '打开', '关闭'], | |
| coordDimensions: [{ | |
| name: 'y', | |
| otherDims: { | |
| tooltip: false | |
| }, | |
| dimsDef: ['base'] | |
| }, { | |
| name: 'x', | |
| dimsDef: ['open', 'close'] | |
| }], | |
| encodeDefine: { | |
| tooltip: [1, 2, 0] | |
| } | |
| }, | |
| [ | |
| { | |
| 'otherDims': { | |
| 'tooltip': 2 | |
| }, | |
| 'name': '基础', | |
| 'displayName': '基础', | |
| 'ordinalMeta': undefined, | |
| 'coordDimIndex': 0, | |
| 'coordDim': 'y', | |
| 'type': 'ordinal', | |
| 'storeDimIndex': 0 | |
| }, | |
| { | |
| 'otherDims': { | |
| 'tooltip': 0 | |
| }, | |
| 'name': '打开', | |
| 'displayName': '打开', | |
| 'coordDimIndex': 0, | |
| 'ordinalMeta': undefined, | |
| 'coordDim': 'x', | |
| 'storeDimIndex': 1 | |
| }, | |
| { | |
| 'otherDims': { | |
| 'tooltip': 1 | |
| }, | |
| 'name': '关闭', | |
| 'displayName': '关闭', | |
| 'ordinalMeta': undefined, | |
| 'coordDimIndex': 1, | |
| 'coordDim': 'x', | |
| 'storeDimIndex': 2 | |
| } | |
| ] | |
| ); | |
| doTest( | |
| data, { | |
| coordDimensions: [{ | |
| name: 'y', | |
| otherDims: { | |
| tooltip: false | |
| }, | |
| dimsDef: ['base'] | |
| }, { | |
| name: 'x', | |
| dimsDef: ['open', 'close'] | |
| }], | |
| dimensionsDefine: ['基础', null, '关闭'], | |
| encodeDefine: { | |
| x: [0, 4] | |
| } | |
| }, | |
| [ | |
| { | |
| 'otherDims': {}, | |
| 'displayName': '基础', | |
| 'name': '基础', | |
| 'coordDimIndex': 0, | |
| 'coordDim': 'x', | |
| 'ordinalMeta': undefined, | |
| 'type': 'ordinal', | |
| 'storeDimIndex': 0 | |
| }, | |
| { | |
| 'otherDims': { | |
| 'tooltip': false | |
| }, | |
| 'name': 'base', | |
| 'displayName': 'base', | |
| 'ordinalMeta': undefined, | |
| 'defaultTooltip': undefined, | |
| 'coordDimIndex': 0, | |
| 'coordDim': 'y', | |
| 'storeDimIndex': 1 | |
| }, | |
| { | |
| 'otherDims': {}, | |
| 'name': '关闭', | |
| 'displayName': '关闭', | |
| 'coordDimIndex': 0, | |
| 'isExtraCoord': true, | |
| 'coordDim': 'value', | |
| 'storeDimIndex': 2 | |
| } | |
| ] | |
| ); | |
| }); | |
| it('dimsDef', function () { | |
| function doTest( | |
| source: ParametersOfCreateDimensions[0], | |
| opt: ParametersOfCreateDimensions[1], | |
| result: SeriesDimensionDefine[] | |
| ) { | |
| expect(doCreateDimensions(source, opt)).toEqual(result.map(a => new SeriesDimensionDefine(a))); | |
| } | |
| const data = [['iw', 332, 4434, 323, 59], ['vrr', 44, 11, 144, 55]]; | |
| doTest( | |
| data, | |
| { | |
| dimensionsDefine: ['挨克思', null, '歪溜'], | |
| coordDimensions: ['x', 'y', 'value'] | |
| }, | |
| [ | |
| { | |
| 'otherDims': {}, | |
| 'displayName': '挨克思', | |
| 'name': '挨克思', | |
| 'type': 'ordinal', | |
| 'coordDim': 'x', | |
| 'coordDimIndex': 0, | |
| 'storeDimIndex': 0 | |
| }, | |
| { | |
| 'otherDims': {}, | |
| 'coordDim': 'y', | |
| 'coordDimIndex': 0, | |
| 'name': 'y', | |
| 'storeDimIndex': 1 | |
| }, | |
| { | |
| 'otherDims': {}, | |
| 'displayName': '歪溜', | |
| 'name': '歪溜', | |
| 'coordDim': 'value', | |
| 'coordDimIndex': 0, | |
| 'storeDimIndex': 2 | |
| } | |
| ] | |
| ); | |
| doTest( | |
| data, | |
| { | |
| dimensionsDefine: ['挨克思', null, {type: 'ordinal' as const}], | |
| coordDimensions: ['x', 'y', 'value'] | |
| }, // no name but only type | |
| [ | |
| { | |
| 'otherDims': {}, | |
| 'displayName': '挨克思', | |
| 'name': '挨克思', | |
| 'type': 'ordinal', | |
| 'coordDim': 'x', | |
| 'coordDimIndex': 0, | |
| 'storeDimIndex': 0 | |
| }, | |
| { | |
| 'otherDims': {}, | |
| 'coordDim': 'y', | |
| 'coordDimIndex': 0, | |
| 'name': 'y', | |
| 'storeDimIndex': 1 | |
| }, | |
| { | |
| 'otherDims': {}, | |
| 'name': 'value', | |
| 'coordDim': 'value', | |
| 'type': 'ordinal', | |
| 'coordDimIndex': 0, | |
| 'storeDimIndex': 2 | |
| } | |
| ] | |
| ); | |
| doTest( | |
| data, | |
| { | |
| dimensionsDefine: [{name: '泰亩', type: 'ordinal'}, {name: '歪溜', type: 'float'}], | |
| coordDimensions: [{name: 'time', type: 'time' as const}, 'value'] | |
| }, | |
| [ | |
| { | |
| 'otherDims': {}, | |
| 'displayName': '泰亩', | |
| 'name': '泰亩', | |
| 'type': 'ordinal', | |
| 'ordinalMeta': undefined, | |
| 'coordDimIndex': 0, | |
| 'coordDim': 'time', | |
| 'storeDimIndex': 0 | |
| }, | |
| { | |
| 'otherDims': {}, | |
| 'displayName': '歪溜', | |
| 'name': '歪溜', | |
| 'type': 'float', | |
| 'coordDim': 'value', | |
| 'coordDimIndex': 0, | |
| 'storeDimIndex': 1 | |
| } | |
| ] | |
| ); | |
| // Duplicate name | |
| doTest( | |
| data, | |
| { | |
| dimensionsDefine: [{name: '泰亩', type: 'ordinal'}, {name: '泰亩', type: 'float'}], | |
| coordDimensions: [{name: 'time', type: 'time' as const}, 'value'] | |
| }, | |
| [ | |
| { | |
| 'otherDims': {}, | |
| 'displayName': '泰亩', | |
| 'name': '泰亩', | |
| 'type': 'ordinal', | |
| 'ordinalMeta': undefined, | |
| 'coordDimIndex': 0, | |
| 'coordDim': 'time', | |
| 'storeDimIndex': 0 | |
| }, | |
| { | |
| 'otherDims': {}, | |
| 'displayName': '泰亩', | |
| 'name': '泰亩0', | |
| 'type': 'float', | |
| 'coordDim': 'value', | |
| 'coordDimIndex': 0, | |
| 'storeDimIndex': 1 | |
| } | |
| ] | |
| ); | |
| }); | |
| it('encodeDef', function () { | |
| function doTest( | |
| source: ParametersOfCreateDimensions[0], | |
| opt: ParametersOfCreateDimensions[1], | |
| result: SeriesDimensionDefine[] | |
| ) { | |
| expect(doCreateDimensions(source, opt)).toEqual(result.map(a => new SeriesDimensionDefine(a))); | |
| } | |
| const data = [['iw', 332, 4434, 323, 'd8', 59], ['vrr', 44, 11, 144, '-', 55]]; | |
| doTest( | |
| data, | |
| { | |
| encodeDefine: { | |
| x: 2, | |
| y: [1, 4], | |
| tooltip: 2, | |
| label: [3, 5] | |
| } | |
| }, | |
| [ | |
| { | |
| 'otherDims': {}, | |
| 'coordDim': 'value', | |
| 'coordDimIndex': 0, | |
| 'name': 'value', | |
| 'isExtraCoord': true, | |
| 'type': 'ordinal', | |
| 'storeDimIndex': 0 | |
| } | |
| ] | |
| ); | |
| doTest( | |
| data, | |
| { | |
| dimensionsDefine: ['挨克思', null, '歪溜'], | |
| encodeDefine: { | |
| x: 2, | |
| y: [1, 4], | |
| tooltip: 2, | |
| label: [3, 5] | |
| } | |
| }, | |
| [ | |
| { | |
| 'otherDims': {}, | |
| 'displayName': '挨克思', | |
| 'name': '挨克思', | |
| 'type': 'ordinal', | |
| 'coordDim': 'value', | |
| 'coordDimIndex': 0, | |
| 'isExtraCoord': true, | |
| 'storeDimIndex': 0 | |
| }, | |
| { | |
| 'otherDims': {}, | |
| 'coordDim': 'y', | |
| 'coordDimIndex': 0, | |
| 'name': 'y', | |
| 'storeDimIndex': 1 | |
| }, | |
| { | |
| 'otherDims': { | |
| 'tooltip': 0 | |
| }, | |
| 'displayName': '歪溜', | |
| 'name': '歪溜', | |
| 'coordDim': 'x', | |
| 'coordDimIndex': 0, | |
| 'storeDimIndex': 2 | |
| } | |
| ] | |
| ); | |
| doTest( | |
| data, | |
| { | |
| dimensionsDefine: ['挨克思', null, '歪溜'], | |
| coordDimensions: ['x', {name: 'y', type: 'time' as const}, 'z'], | |
| encodeDefine: { | |
| x: 2, | |
| y: [1, 4], | |
| tooltip: 2, | |
| label: [3, 5] | |
| } | |
| }, | |
| [ | |
| { | |
| 'otherDims': {}, | |
| 'displayName': '挨克思', | |
| 'name': '挨克思', | |
| 'type': 'ordinal', | |
| 'coordDim': 'z', | |
| 'coordDimIndex': 0, | |
| 'storeDimIndex': 0 | |
| }, | |
| { | |
| 'otherDims': {}, | |
| 'coordDim': 'y', | |
| 'coordDimIndex': 0, | |
| 'name': 'y', | |
| 'type': 'time', | |
| 'ordinalMeta': undefined, | |
| 'storeDimIndex': 1 | |
| }, | |
| { | |
| 'otherDims': { | |
| 'tooltip': 0 | |
| }, | |
| 'displayName': '歪溜', | |
| 'name': '歪溜', | |
| 'coordDim': 'x', | |
| 'coordDimIndex': 0, | |
| 'storeDimIndex': 2 | |
| } | |
| ] | |
| ); | |
| doTest( | |
| data, | |
| { | |
| // dimsDef type 'ordinal' has higher priority then sysDims type 'time'. | |
| dimensionsDefine: [{name: '泰亩', type: 'ordinal'}, {name: '歪溜', type: 'float'}], | |
| coordDimensions: [{name: 'time', type: 'time' as const}, 'value'], | |
| encodeDefine: { | |
| tooltip: 2 | |
| } | |
| }, | |
| [ | |
| { | |
| 'otherDims': {}, | |
| 'displayName': '泰亩', | |
| 'name': '泰亩', | |
| 'type': 'ordinal', | |
| 'ordinalMeta': undefined, | |
| 'coordDimIndex': 0, | |
| 'coordDim': 'time', | |
| 'storeDimIndex': 0 | |
| }, | |
| { | |
| 'otherDims': {}, | |
| 'displayName': '歪溜', | |
| 'name': '歪溜', | |
| 'type': 'float', | |
| 'coordDim': 'value', | |
| 'coordDimIndex': 0, | |
| 'storeDimIndex': 1 | |
| } | |
| ] | |
| ); | |
| doTest( | |
| data, | |
| { | |
| // dimsDef type 'ordinal' has higher priority then sysDims type 'time'. | |
| dimensionsDefine: [{name: '泰亩', type: 'ordinal'}, {name: '歪溜', type: 'float'}], | |
| coordDimensions: [{name: 'time', type: 'time' as const}, 'value'], | |
| encodeDefine: { | |
| tooltip: 2 | |
| } | |
| }, | |
| [ | |
| { | |
| 'otherDims': {}, | |
| 'displayName': '泰亩', | |
| 'name': '泰亩', | |
| 'type': 'ordinal', | |
| 'ordinalMeta': undefined, | |
| 'coordDimIndex': 0, | |
| 'coordDim': 'time', | |
| 'storeDimIndex': 0 | |
| }, | |
| { | |
| 'otherDims': {}, | |
| 'displayName': '歪溜', | |
| 'name': '歪溜', | |
| 'type': 'float', | |
| 'coordDim': 'value', | |
| 'coordDimIndex': 0, | |
| 'storeDimIndex': 1 | |
| } | |
| ] | |
| ); | |
| }); | |
| }); |