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

Side by Side Diff: packages/charted/test.disabled/interpolators/interpolators_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 library charted.test.interpolators;
10
11 import 'package:charted/core/utils.dart';
12 import 'package:charted/interpolators/interpolators.dart';
13 import 'package:unittest/unittest.dart';
14
15 part 'easing_test.dart';
16
17 class MockObject {
18 num a;
19 List b;
20 MockObject(this.a, this.b);
21 }
22
23 interpolatorsTests() {
24 testEasing();
25
26 test('interpolateNumber correctly interpolates two [num]s', () {
27 InterpolateFn interpolator = interpolateNumber(1, 10);
28 expect(interpolator(0), equals(1));
29 expect(interpolator(0.5), equals(5.5));
30 expect(interpolator(1), equals(10));
31 });
32
33 test('interpolateRound correctly interpolates two [num]s', () {
34 InterpolateFn interpolator = interpolateRound(0.8, 10.3);
35 expect(interpolator(0), equals(1));
36 expect(interpolator(0.5), equals(6));
37 expect(interpolator(1), equals(10));
38 });
39
40 test('interpolateString correctly interpolates two [String]s', () {
41 InterpolateFn interpolator =
42 interpolateString('M1,2L2,2M5,3', 'M2,4L5,5M5,4');
43 expect(interpolator(0), equals('M1,2L2,2M5,3'));
44 expect(interpolator(0.5), equals('M1.5,3.0L3.5,3.5M5.0,3.5'));
45 expect(interpolator(1), equals('M2,4L5,5M5,4'));
46 });
47
48 test('interpolateColor interpolates two [Color]s in RGB color system', () {
49 InterpolateFn interpolator = interpolateRgbColor(
50 new Color.fromRgb(100, 0, 150), new Color.fromRgb(200, 150, 0));
51 expect(interpolator(0).hexString, equals('#640096'));
52 expect(interpolator(0.5).hexString, equals('#964b4b'));
53 expect(interpolator(1).hexString, equals('#c89600'));
54 });
55
56 test('interpolateHsl interpolates two [Color]s in HSL color system', () {
57 InterpolateFn interpolator = interpolateHslColor(
58 new Color.fromRgb(100, 0, 150), new Color.fromRgb(200, 150, 0));
59 expect(interpolator(0), equals('#640096'));
60 expect(interpolator(0.5), equals('#00af7c'));
61 expect(interpolator(1), equals('#c89600'));
62 });
63
64 test('uninterpolateNumber returns the reverse of interpolateNumber', () {
65 InterpolateFn interpolator = uninterpolateNumber(1, 10);
66 expect(interpolator(-3.5), equals(-0.5));
67 expect(interpolator(1), equals(0));
68 expect(interpolator(5.5), equals(0.5));
69 expect(interpolator(10), equals(1));
70 });
71
72 test('uninterpolateClamp clamps uninterpolated result to [0, 1]', () {
73 InterpolateFn interpolator = uninterpolateClamp(1, 10);
74 expect(interpolator(-3.5), equals(0));
75 expect(interpolator(1), equals(0));
76 expect(interpolator(5.5), equals(0.5));
77 expect(interpolator(10), equals(1));
78 expect(interpolator(15), equals(1));
79 });
80
81 test('interpolateTransform correctly interpolates two transforms', () {
82 // Both transform string contain complete information
83 InterpolateFn interpolator =
84 interpolateTransform("translate(10,10)rotate(30)skewX(0.5)scale(1,1)",
85 "translate(100,100)rotate(360)skewX(45)scale(3,3)");
86
87 expect(interpolator(0),
88 equals('translate(10,10)scale(1,1)rotate(390)skewX(0.5)'));
89 expect(interpolator(0.5),
90 equals('translate(55.0,55.0)scale(2.0,2.0)rotate(375.0)skewX(22.75)'));
91 expect(interpolator(1),
92 equals('translate(100,100)scale(3,3)rotate(360)skewX(45.0)'));
93
94 // The first transform string is empty
95 interpolator = interpolateTransform("",
96 "translate(100,100)rotate(360)skewX(45)scale(3,3)");
97 expect(interpolator(0),
98 equals('translate(0,0)scale(1,1)rotate(360)skewX(0)'));
99 expect(interpolator(0.5),
100 equals('translate(50.0,50.0)scale(2.0,2.0)rotate(360.0)skewX(22.5)'));
101 expect(interpolator(1),
102 equals('translate(100,100)scale(3,3)rotate(360)skewX(45)'));
103
104 // Two transform strings are not complete
105 interpolator = interpolateTransform("translate(10,10)rotate(30)scale(1,1)",
106 "skewX(45)scale(3,3)");
107 expect(interpolator(0),
108 equals('translate(10,10)scale(1,1)rotate(30)skewX(0)'));
109 expect(interpolator(0.5),
110 equals('translate(5.0,5.0)scale(2.0,2.0)rotate(15.0)skewX(22.5)'));
111 expect(interpolator(1),
112 equals('translate(0,0)scale(3,3)rotate(0)skewX(45)'));
113 });
114
115 test('interpolateZoom correctly interpolates two [Zoom]s', () {
116 // dr != 0
117 InterpolateFn interpolator = interpolateZoom([3, 5, 2], [1, 10, 4]);
118
119 List zoom = interpolator(0);
120 expect(zoom[0], closeTo(3, EPSILON));
121 expect(zoom[1], closeTo(5, EPSILON));
122 expect(zoom[2], closeTo(2, EPSILON));
123
124 zoom = interpolator(0.5);
125 expect(zoom[0], closeTo(2.333333333333334, EPSILON));
126 expect(zoom[1], closeTo(6.666666666666665, EPSILON));
127 expect(zoom[2], closeTo(5.811865258054227, EPSILON));
128
129 zoom = interpolator(1);
130 expect(zoom[0], closeTo(1, EPSILON));
131 expect(zoom[1], closeTo(10, EPSILON));
132 expect(zoom[2], closeTo(4, EPSILON));
133
134 // dr == 0
135 interpolator = interpolateZoom([5, 10, 4], [5, 10, 4]);
136
137 zoom = interpolator(0);
138 expect(zoom[0], closeTo(5, EPSILON));
139 expect(zoom[1], closeTo(10, EPSILON));
140 expect(zoom[2], closeTo(4, EPSILON));
141
142 zoom = interpolator(0.5);
143 expect(zoom[0], closeTo(5, EPSILON));
144 expect(zoom[1], closeTo(10, EPSILON));
145 expect(zoom[2], closeTo(4, EPSILON));
146
147 zoom = interpolator(1);
148 expect(zoom[0], closeTo(5, EPSILON));
149 expect(zoom[1], closeTo(10, EPSILON));
150 expect(zoom[2], closeTo(4, EPSILON));
151 });
152 }
OLDNEW
« no previous file with comments | « packages/charted/test.disabled/interpolators/easing_test.dart ('k') | packages/charted/test.disabled/layout/layout_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698