Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(63)

Side by Side Diff: packages/charted/test.disabled/scale/log_scale_test.dart

Issue 1400473008: Roll Observatory packages and add a roll script (Closed) Base URL: git@github.com:dart-lang/observatory_pub_packages.git@master
Patch Set: Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(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 testLogScale() {
12 group('LogScale.domain', () {
13 test('is positive if the first element in domain is non-negative', () {
14 LogScale log = new LogScale();
15 log.domain = [1, 100];
16 expect(log.apply(0.1), closeTo(-0.5, EPSILON));
17 expect(log.apply(1), equals(0));
18 expect(log.apply(10), equals(0.5));
19 expect(log.apply(100), equals(1));
20 expect(log.apply(1000), closeTo(1.5, EPSILON));
21 expect(log.invert(0), equals(1));
22 expect(log.invert(0.5), equals(10));
23 expect(log.invert(1), equals(100));
24 });
25 test('is negative if the first element in domain is negative', () {
26 LogScale log = new LogScale();
27 log.domain = [-1, -100];
28 expect(log.apply(-1), equals(0));
29 expect(log.apply(-10), equals(0.5));
30 expect(log.apply(-100), equals(1));
31 expect(log.invert(0), equals(-1));
32 expect(log.invert(0.5), equals(-10));
33 expect(log.invert(1), equals(-100));
34 });
35 });
36
37 test('LogScale supports setting clamp to clamp range', () {
38 LogScale log = new LogScale();
39 log.domain = [1, 100];
40 log.clamp = true;
41 expect(log.apply(0.1), equals(0));
42 expect(log.apply(1), equals(0));
43 expect(log.apply(10), equals(0.5));
44 expect(log.apply(100), equals(1));
45 expect(log.apply(1000), equals(1));
46 });
47
48 test('LogScale supports setting base of log', () {
49 LogScale log = new LogScale();
50 log.base = 2;
51 log.domain = [1, 8];
52 log.range = [1, 8];
53 expect(log.apply(1), equals(1));
54 expect(log.apply(4), closeTo(5.666666666666666, EPSILON));
55 expect(log.apply(8), equals(8));
56 });
57
58 test('LogScale.rangeRound sets the interpolator to interpolateRound', () {
59 LogScale log = new LogScale();
60 log.domain = [1, 8];
61 log.rangeRound([1, 8]);
62 expect(log.apply(1), equals(1));
63 expect(log.apply(4), equals(6));
64 expect(log.apply(8), equals(8));
65 });
66
67 test('LogScale.ticks returns representative values from domain', () {
68 LogScale log = new LogScale();
69 log.domain = [1, 100];
70 expect(log.ticks(), orderedEquals(
71 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100]));
72 log.domain = [-1, -100];
73 expect(log.ticks(), orderedEquals([-100, -90, -80, -70, -60, -50, -40, -30,
74 -20, -10, -9, -8, -7, -6, -5, -4, -3, -2, -1]));
75 });
76
77 test('LogScale.tickFormat formats tick values by specified formatter', () {
78 // Default formatter
79 LogScale log = new LogScale();
80 log.domain = [1, 10];
81 expect(log.ticks().map((d) => log.createTickFormatter(20)(d)),
82 orderedEquals(['1e+0', '2e+0', '3e+0', '4e+0', '5e+0', '6e+0', '7e+0',
83 '8e+0', '9e+0', '1e+1']));
84 // Specified formatter
85 log.domain = [0.1, 1];
86 expect(log.ticks().map((d) => log.createTickFormatter(20, '+%')(d)),
87 orderedEquals(['+10%', '+20%', '+30%', '+40%', '+50%', '+60%', '+70%',
88 '+80%', '+90%', '+100%']));
89 });
90
91 test('LogScale.nice extends the domain to nice round values', () {
92 LogScale log = new LogScale();
93 log.domain = [0.20147987687960267, 0.996679553296417];
94 log.nice();
95 expect(log.domain, orderedEquals([0.1, 1]));
96 log.domain = [-0.20147987687960267, -0.996679553296417];
97 log.nice();
98 expect(log.domain, orderedEquals([-0.1, -1]));
99 });
100 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698