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 testLinearScale() { |
| 12 group('LinearScale', () { |
| 13 test('applies a bilinearScale when domain length is 2', () { |
| 14 LinearScale linear = new LinearScale([1, 2], [5, 8]); |
| 15 expect(linear.apply(0), equals(2)); |
| 16 expect(linear.apply(1), equals(5)); |
| 17 expect(linear.apply(1.5), equals(6.5)); |
| 18 expect(linear.apply(2), equals(8)); |
| 19 expect(linear.invert(5), equals(1)); |
| 20 expect(linear.invert(6.5), equals(1.5)); |
| 21 expect(linear.invert(8), equals(2)); |
| 22 }); |
| 23 test('applies a polylinearScale when domain length is larger than 2', () { |
| 24 LinearScale linear = new LinearScale([1, 2, 3], [5, 8, 7]); |
| 25 expect(linear.apply(1), equals(5)); |
| 26 expect(linear.apply(1.5), equals(6.5)); |
| 27 expect(linear.apply(2), equals(8)); |
| 28 expect(linear.apply(2.5), equals(7.5)); |
| 29 expect(linear.apply(3), equals(7)); |
| 30 }); |
| 31 }); |
| 32 |
| 33 test('LinearScale supports setting clamp to clamp range', () { |
| 34 LinearScale linear = new LinearScale([1, 2], [5, 8], |
| 35 interpolateNumber, true); |
| 36 expect(linear.apply(0), equals(5)); |
| 37 expect(linear.apply(1), equals(5)); |
| 38 expect(linear.apply(1.5), equals(6.5)); |
| 39 expect(linear.apply(2), equals(8)); |
| 40 expect(linear.apply(5), equals(8)); |
| 41 }); |
| 42 |
| 43 test('LinearScale.rangeRound sets the interpolator to interpolateRound', () { |
| 44 LinearScale linear = new LinearScale([1, 2]); |
| 45 linear.rangeRound([5, 8]); |
| 46 expect(linear.apply(1), equals(5)); |
| 47 expect(linear.apply(1.5), equals(7)); |
| 48 expect(linear.apply(2), equals(8)); |
| 49 }); |
| 50 |
| 51 test('LinearScale.ticks sets tick number and returns tick values', () { |
| 52 LinearScale linear = new LinearScale([0, 10], [1, 100]); |
| 53 expect(linear.ticks(2), orderedEquals([0, 5, 10])); |
| 54 expect(linear.ticks(3), orderedEquals([0, 5, 10])); |
| 55 expect(linear.ticks(4), orderedEquals([0, 2, 4, 6, 8, 10])); |
| 56 expect(linear.ticks(5), orderedEquals([0, 2, 4, 6, 8, 10])); |
| 57 expect(linear.ticks(6), orderedEquals([0, 2, 4, 6, 8, 10])); |
| 58 expect(linear.ticks(7), orderedEquals([0, 2, 4, 6, 8, 10])); |
| 59 expect(linear.ticks(8), orderedEquals([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])); |
| 60 expect(linear.ticks(9), orderedEquals([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])); |
| 61 expect(linear.ticks(10), orderedEquals([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])); |
| 62 }); |
| 63 |
| 64 test('LinearScale.tickFormat formats tick values by specified formatter', () { |
| 65 // Default formatter |
| 66 LinearScale linear = new LinearScale([0, 1], [1, 100]); |
| 67 expect(linear.ticks(2).map((d) => linear.createTickFormatter(2)(d)), |
| 68 orderedEquals(['0.0', '0.5', '1.0'])); |
| 69 expect(linear.ticks(5).map((d) => linear.createTickFormatter(5)(d)), |
| 70 orderedEquals(['0.0', '0.2', '0.4', '0.6', '0.8', '1.0'])); |
| 71 expect(linear.ticks(10).map((d) => linear.createTickFormatter(10)(d)), |
| 72 orderedEquals(['0.0', '0.1', '0.2', '0.3', '0.4', '0.5', |
| 73 '0.6', '0.7', '0.8', '0.9', '1.0' ])); |
| 74 // Specified formatter |
| 75 expect(linear.ticks(2).map((d) => linear.createTickFormatter(2, '+%')(d)), |
| 76 orderedEquals(['+0%', '+50%', '+100%'])); |
| 77 expect(linear.ticks(5).map((d) => linear.createTickFormatter(5, '+%')(d)), |
| 78 orderedEquals(['+0%', '+20%', '+40%', '+60%', '+80%', '+100%'])); |
| 79 expect(linear.ticks(10).map((d) => linear.createTickFormatter(10, '+%')(d)), |
| 80 orderedEquals(['+0%', '+10%', '+20%', '+30%', '+40%', '+50%', |
| 81 '+60%', '+70%', '+80%', '+90%', '+100%'])); |
| 82 }); |
| 83 |
| 84 test('LinearScale.nice extends the domain to nice round values', () { |
| 85 LinearScale linear = new LinearScale([0.5, 10.6], [1, 100]); |
| 86 linear.nice(10); |
| 87 expect(linear.domain, orderedEquals([0, 11])); |
| 88 linear.domain = [0.5, 10.6]; |
| 89 linear.nice(4); |
| 90 expect(linear.domain, orderedEquals([0, 12])); |
| 91 }); |
| 92 } |
OLD | NEW |