Index: packages/charted/test.disabled/scale/linear_scale_test.dart |
diff --git a/packages/charted/test.disabled/scale/linear_scale_test.dart b/packages/charted/test.disabled/scale/linear_scale_test.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..77703a5088ab0991d977323c5461df6638fb2c48 |
--- /dev/null |
+++ b/packages/charted/test.disabled/scale/linear_scale_test.dart |
@@ -0,0 +1,92 @@ |
+/* |
+ * Copyright 2014 Google Inc. All rights reserved. |
+ * |
+ * Use of this source code is governed by a BSD-style |
+ * license that can be found in the LICENSE file or at |
+ * https://developers.google.com/open-source/licenses/bsd |
+ */ |
+ |
+part of charted.test.scale; |
+ |
+testLinearScale() { |
+ group('LinearScale', () { |
+ test('applies a bilinearScale when domain length is 2', () { |
+ LinearScale linear = new LinearScale([1, 2], [5, 8]); |
+ expect(linear.apply(0), equals(2)); |
+ expect(linear.apply(1), equals(5)); |
+ expect(linear.apply(1.5), equals(6.5)); |
+ expect(linear.apply(2), equals(8)); |
+ expect(linear.invert(5), equals(1)); |
+ expect(linear.invert(6.5), equals(1.5)); |
+ expect(linear.invert(8), equals(2)); |
+ }); |
+ test('applies a polylinearScale when domain length is larger than 2', () { |
+ LinearScale linear = new LinearScale([1, 2, 3], [5, 8, 7]); |
+ expect(linear.apply(1), equals(5)); |
+ expect(linear.apply(1.5), equals(6.5)); |
+ expect(linear.apply(2), equals(8)); |
+ expect(linear.apply(2.5), equals(7.5)); |
+ expect(linear.apply(3), equals(7)); |
+ }); |
+ }); |
+ |
+ test('LinearScale supports setting clamp to clamp range', () { |
+ LinearScale linear = new LinearScale([1, 2], [5, 8], |
+ interpolateNumber, true); |
+ expect(linear.apply(0), equals(5)); |
+ expect(linear.apply(1), equals(5)); |
+ expect(linear.apply(1.5), equals(6.5)); |
+ expect(linear.apply(2), equals(8)); |
+ expect(linear.apply(5), equals(8)); |
+ }); |
+ |
+ test('LinearScale.rangeRound sets the interpolator to interpolateRound', () { |
+ LinearScale linear = new LinearScale([1, 2]); |
+ linear.rangeRound([5, 8]); |
+ expect(linear.apply(1), equals(5)); |
+ expect(linear.apply(1.5), equals(7)); |
+ expect(linear.apply(2), equals(8)); |
+ }); |
+ |
+ test('LinearScale.ticks sets tick number and returns tick values', () { |
+ LinearScale linear = new LinearScale([0, 10], [1, 100]); |
+ expect(linear.ticks(2), orderedEquals([0, 5, 10])); |
+ expect(linear.ticks(3), orderedEquals([0, 5, 10])); |
+ expect(linear.ticks(4), orderedEquals([0, 2, 4, 6, 8, 10])); |
+ expect(linear.ticks(5), orderedEquals([0, 2, 4, 6, 8, 10])); |
+ expect(linear.ticks(6), orderedEquals([0, 2, 4, 6, 8, 10])); |
+ expect(linear.ticks(7), orderedEquals([0, 2, 4, 6, 8, 10])); |
+ expect(linear.ticks(8), orderedEquals([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])); |
+ expect(linear.ticks(9), orderedEquals([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])); |
+ expect(linear.ticks(10), orderedEquals([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])); |
+ }); |
+ |
+ test('LinearScale.tickFormat formats tick values by specified formatter', () { |
+ // Default formatter |
+ LinearScale linear = new LinearScale([0, 1], [1, 100]); |
+ expect(linear.ticks(2).map((d) => linear.createTickFormatter(2)(d)), |
+ orderedEquals(['0.0', '0.5', '1.0'])); |
+ expect(linear.ticks(5).map((d) => linear.createTickFormatter(5)(d)), |
+ orderedEquals(['0.0', '0.2', '0.4', '0.6', '0.8', '1.0'])); |
+ expect(linear.ticks(10).map((d) => linear.createTickFormatter(10)(d)), |
+ orderedEquals(['0.0', '0.1', '0.2', '0.3', '0.4', '0.5', |
+ '0.6', '0.7', '0.8', '0.9', '1.0' ])); |
+ // Specified formatter |
+ expect(linear.ticks(2).map((d) => linear.createTickFormatter(2, '+%')(d)), |
+ orderedEquals(['+0%', '+50%', '+100%'])); |
+ expect(linear.ticks(5).map((d) => linear.createTickFormatter(5, '+%')(d)), |
+ orderedEquals(['+0%', '+20%', '+40%', '+60%', '+80%', '+100%'])); |
+ expect(linear.ticks(10).map((d) => linear.createTickFormatter(10, '+%')(d)), |
+ orderedEquals(['+0%', '+10%', '+20%', '+30%', '+40%', '+50%', |
+ '+60%', '+70%', '+80%', '+90%', '+100%'])); |
+ }); |
+ |
+ test('LinearScale.nice extends the domain to nice round values', () { |
+ LinearScale linear = new LinearScale([0.5, 10.6], [1, 100]); |
+ linear.nice(10); |
+ expect(linear.domain, orderedEquals([0, 11])); |
+ linear.domain = [0.5, 10.6]; |
+ linear.nice(4); |
+ expect(linear.domain, orderedEquals([0, 12])); |
+ }); |
+} |