Index: packages/charted/test.disabled/scale/log_scale_test.dart |
diff --git a/packages/charted/test.disabled/scale/log_scale_test.dart b/packages/charted/test.disabled/scale/log_scale_test.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..75fb9e863f456c76557c37db918a9f0b5f3ac0ff |
--- /dev/null |
+++ b/packages/charted/test.disabled/scale/log_scale_test.dart |
@@ -0,0 +1,100 @@ |
+/* |
+ * 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; |
+ |
+testLogScale() { |
+ group('LogScale.domain', () { |
+ test('is positive if the first element in domain is non-negative', () { |
+ LogScale log = new LogScale(); |
+ log.domain = [1, 100]; |
+ expect(log.apply(0.1), closeTo(-0.5, EPSILON)); |
+ expect(log.apply(1), equals(0)); |
+ expect(log.apply(10), equals(0.5)); |
+ expect(log.apply(100), equals(1)); |
+ expect(log.apply(1000), closeTo(1.5, EPSILON)); |
+ expect(log.invert(0), equals(1)); |
+ expect(log.invert(0.5), equals(10)); |
+ expect(log.invert(1), equals(100)); |
+ }); |
+ test('is negative if the first element in domain is negative', () { |
+ LogScale log = new LogScale(); |
+ log.domain = [-1, -100]; |
+ expect(log.apply(-1), equals(0)); |
+ expect(log.apply(-10), equals(0.5)); |
+ expect(log.apply(-100), equals(1)); |
+ expect(log.invert(0), equals(-1)); |
+ expect(log.invert(0.5), equals(-10)); |
+ expect(log.invert(1), equals(-100)); |
+ }); |
+ }); |
+ |
+ test('LogScale supports setting clamp to clamp range', () { |
+ LogScale log = new LogScale(); |
+ log.domain = [1, 100]; |
+ log.clamp = true; |
+ expect(log.apply(0.1), equals(0)); |
+ expect(log.apply(1), equals(0)); |
+ expect(log.apply(10), equals(0.5)); |
+ expect(log.apply(100), equals(1)); |
+ expect(log.apply(1000), equals(1)); |
+ }); |
+ |
+ test('LogScale supports setting base of log', () { |
+ LogScale log = new LogScale(); |
+ log.base = 2; |
+ log.domain = [1, 8]; |
+ log.range = [1, 8]; |
+ expect(log.apply(1), equals(1)); |
+ expect(log.apply(4), closeTo(5.666666666666666, EPSILON)); |
+ expect(log.apply(8), equals(8)); |
+ }); |
+ |
+ test('LogScale.rangeRound sets the interpolator to interpolateRound', () { |
+ LogScale log = new LogScale(); |
+ log.domain = [1, 8]; |
+ log.rangeRound([1, 8]); |
+ expect(log.apply(1), equals(1)); |
+ expect(log.apply(4), equals(6)); |
+ expect(log.apply(8), equals(8)); |
+ }); |
+ |
+ test('LogScale.ticks returns representative values from domain', () { |
+ LogScale log = new LogScale(); |
+ log.domain = [1, 100]; |
+ expect(log.ticks(), orderedEquals( |
+ [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100])); |
+ log.domain = [-1, -100]; |
+ expect(log.ticks(), orderedEquals([-100, -90, -80, -70, -60, -50, -40, -30, |
+ -20, -10, -9, -8, -7, -6, -5, -4, -3, -2, -1])); |
+ }); |
+ |
+ test('LogScale.tickFormat formats tick values by specified formatter', () { |
+ // Default formatter |
+ LogScale log = new LogScale(); |
+ log.domain = [1, 10]; |
+ expect(log.ticks().map((d) => log.createTickFormatter(20)(d)), |
+ orderedEquals(['1e+0', '2e+0', '3e+0', '4e+0', '5e+0', '6e+0', '7e+0', |
+ '8e+0', '9e+0', '1e+1'])); |
+ // Specified formatter |
+ log.domain = [0.1, 1]; |
+ expect(log.ticks().map((d) => log.createTickFormatter(20, '+%')(d)), |
+ orderedEquals(['+10%', '+20%', '+30%', '+40%', '+50%', '+60%', '+70%', |
+ '+80%', '+90%', '+100%'])); |
+ }); |
+ |
+ test('LogScale.nice extends the domain to nice round values', () { |
+ LogScale log = new LogScale(); |
+ log.domain = [0.20147987687960267, 0.996679553296417]; |
+ log.nice(); |
+ expect(log.domain, orderedEquals([0.1, 1])); |
+ log.domain = [-0.20147987687960267, -0.996679553296417]; |
+ log.nice(); |
+ expect(log.domain, orderedEquals([-0.1, -1])); |
+ }); |
+} |