OLD | NEW |
(Empty) | |
| 1 /* |
| 2 * Copyright 2014 Google Inc. All rights reserved. |
| 3 * |
| 4 * Use of this source code is governed by a BSD-style |
| 5 * license that can be found in the LICENSE file or at |
| 6 * https://developers.google.com/open-source/licenses/bsd |
| 7 */ |
| 8 |
| 9 part of charted.test.scale; |
| 10 |
| 11 testOrdinalScale() { |
| 12 test('OrdinalScale.apply returns range value of given value in domain', () { |
| 13 // Domain and range have same length. |
| 14 OrdinalScale ordinal = new OrdinalScale(); |
| 15 ordinal.domain = ['Jan', 'Feb', 'Mar', 'Apr']; |
| 16 ordinal.range = [1, 3, 5, 7]; |
| 17 for (var i = 0; i < ordinal.domain.length; i++){ |
| 18 expect(ordinal.apply(ordinal.domain[i]), equals(ordinal.range[i])); |
| 19 } |
| 20 // Domain has more elements than range. |
| 21 ordinal.range = [1, 3, 5]; |
| 22 for (var i = 0; i < ordinal.domain.length; i++){ |
| 23 expect(ordinal.apply(ordinal.domain[i]), |
| 24 equals(ordinal.range[i % ordinal.range.length])); |
| 25 } |
| 26 }); |
| 27 |
| 28 test('OrdinalScale.rangePoints sets the output range from the specified ' |
| 29 'continuous interval', () { |
| 30 OrdinalScale ordinal = new OrdinalScale(); |
| 31 ordinal.domain = ['Jan', 'Feb', 'Mar', 'Apr']; |
| 32 ordinal.rangePoints([0, 90]); |
| 33 expect(ordinal.range, orderedEquals([0, 30, 60, 90])); |
| 34 ordinal.rangePoints([0, 100], 1 / 3); |
| 35 expect(ordinal.range, orderedEquals([5, 35, 65, 95])); |
| 36 }); |
| 37 |
| 38 test('OrdinalScale.rangeBands sets the output range from the specified ' |
| 39 'continuous interval', () { |
| 40 OrdinalScale ordinal = new OrdinalScale(); |
| 41 ordinal.domain = ['Jan', 'Feb', 'Mar']; |
| 42 ordinal.rangeBands([0, 90]); |
| 43 expect(ordinal.range, orderedEquals([0, 30, 60])); |
| 44 ordinal.rangeBands([0, 100], 1 / 3); |
| 45 expect(ordinal.range, orderedEquals([10.0, 40.0, 70.0])); |
| 46 ordinal.rangeBands([0, 90], 2 / 5, 1 / 5); |
| 47 expect(ordinal.range, orderedEquals([6.0, 36.0, 66.0])); |
| 48 ordinal.rangeBands([90, 0], 2 / 5, 1 / 5); |
| 49 expect(ordinal.range, orderedEquals([66.0, 36.0, 6.0])); |
| 50 }); |
| 51 |
| 52 test('OrdinalScale.rangeBands sets the output range from the specified ' |
| 53 'continuous interval and rounds them to integers', () { |
| 54 OrdinalScale ordinal = new OrdinalScale(); |
| 55 ordinal.domain = ['Jan', 'Feb', 'Mar']; |
| 56 ordinal.rangeRoundBands([0, 100]); |
| 57 expect(ordinal.range, orderedEquals([1.0, 34.0, 67.0])); |
| 58 ordinal.rangeRoundBands([0, 110], 1 / 3); |
| 59 expect(ordinal.range, orderedEquals([11.0, 44.0, 77.0])); |
| 60 ordinal.rangeRoundBands([0, 100], 2 / 5, 1 / 5); |
| 61 expect(ordinal.range, orderedEquals([7.0, 40.0, 73.0])); |
| 62 ordinal.rangeRoundBands([100, 0], 2 / 5, 1 / 5); |
| 63 expect(ordinal.range, orderedEquals([73.0, 40.0, 7.0])); |
| 64 }); |
| 65 |
| 66 test('OrdinalScale.rangeExtent gets [smallest, largest] range values', () { |
| 67 OrdinalScale ordinal = new OrdinalScale(); |
| 68 ordinal.domain = ['Jan', 'Feb', 'Mar']; |
| 69 ordinal.range = [10, 30, 100]; |
| 70 expect(ordinal.rangeExtent(), orderedEquals([10, 100])); |
| 71 ordinal.range = [100, 20, 1]; |
| 72 expect(ordinal.rangeExtent(), orderedEquals([1, 100])); |
| 73 }); |
| 74 } |
OLD | NEW |