Chromium Code Reviews

Side by Side Diff: packages/charted/test.disabled/svg/svg_arc_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.
Jump to:
View unified diff |
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.svg;
10
11 testSvgArc() {
12
13 List mockSvgData = [
14 new SvgArcData(null, 0, 0, 0, 0, 100), // Init sector
15 new SvgArcData(null, 0, 0, 0, 50, 100), // Init donut
16 new SvgArcData(null, 0, 0, 2 * PI, 0, 100), // Whole sector
17 new SvgArcData(null, 0, 0, 2 * PI, 50, 100), // Whole donut
18 new SvgArcData(null, 0, 0, PI / 3, 0, 100), // Sector start angle 0
19 new SvgArcData(null, 0, 0, PI / 3, 50, 100), // Slice start angle 0
20 new SvgArcData(null, 0, PI / 3, PI, 0, 100), // Sector start angle > 0
21 new SvgArcData(null, 0, PI / 3, PI, 50, 100), // Slice start angle > 0
22 ];
23
24 test('interpolateSvgArcData() returns an InterpolateFn that '
25 'correctly interpolates two SvgArcData', () {
26 InterpolateFn arcInterpolator =
27 interpolateSvgArcData(mockSvgData[5], mockSvgData[6]);
28 for (var i = 0.0; i <= 1.0; i += 0.2) {
29 SvgArcData arcData = arcInterpolator(i);
30 expect(arcData.startAngle, closeTo(mockSvgData[5].startAngle * (1 - i) +
31 mockSvgData[6].startAngle * i, EPSILON));
32 expect(arcData.endAngle, closeTo(mockSvgData[5].endAngle * (1 - i) +
33 mockSvgData[6].endAngle * i, EPSILON));
34 expect(arcData.innerRadius, closeTo(mockSvgData[5].innerRadius * (1 - i) +
35 mockSvgData[6].innerRadius * i, EPSILON));
36 expect(arcData.outerRadius, closeTo(mockSvgData[5].outerRadius * (1 - i) +
37 mockSvgData[6].outerRadius * i, EPSILON));
38 }
39 });
40
41 group('SvgArc.innerRadiusCallback', () {
42 test('is assigned defaultInnerRadiusCallback by default', () {
43 SvgArc svgArc = new SvgArc();
44 SelectionCallback<num> callBack = svgArc.innerRadiusCallback;
45 mockSvgData.forEach((e) =>
46 expect(callBack(e, 0, null), equals(e.innerRadius)));
47 expect(callBack(null, 0, null), equals(0));
48 expect(callBack(new SvgArcData(0, 0, 0, 0, null, 0), 0, null), equals(0));
49 });
50 test('is assigned to (value) => value when set by value', () {
51 SvgArc svgArc = new SvgArc();
52 svgArc.innerRadius = 30;
53 SelectionCallback<num> callBack = svgArc.innerRadiusCallback;
54 mockSvgData.forEach((e) =>
55 expect(callBack(e, 0, null), equals(30)));
56 });
57 });
58
59 group('SvgArc.outerRadiusCallback', () {
60 test('is assigned defaultOuterRadiusCallback by default', () {
61 SvgArc svgArc = new SvgArc();
62 SelectionCallback<num> callBack = svgArc.outerRadiusCallback;
63 mockSvgData.forEach((e) =>
64 expect(callBack(e, 0, null), equals(e.outerRadius)));
65 expect(callBack(null, 0, null), equals(0));
66 expect(callBack(new SvgArcData(0, 0, 0, 0, 0, null), 0, null), equals(0));
67 });
68 test('is assigned to (value) => value when set by value', () {
69 SvgArc svgArc = new SvgArc();
70 svgArc.outerRadius = 30;
71 SelectionCallback<num> callBack = svgArc.outerRadiusCallback;
72 mockSvgData.forEach((e) =>
73 expect(callBack(e, 0, null), equals(30)));
74 });
75 });
76
77 group('SvgArc.startAngleCallback', () {
78 test('is assigned defaultStartAngleCallback by default', () {
79 SvgArc svgArc = new SvgArc();
80 SelectionCallback<num> callBack = svgArc.startAngleCallback;
81 mockSvgData.forEach((e) =>
82 expect(callBack(e, 0, null), equals(e.startAngle)));
83 expect(callBack(null, 0, null), equals(0));
84 expect(callBack(new SvgArcData(0, 0, null, 0, 0, 0), 0, null), equals(0));
85 });
86 test('is assigned to (value) => value when set by value', () {
87 SvgArc svgArc = new SvgArc();
88 svgArc.startAngle = 30;
89 SelectionCallback<num> callBack = svgArc.startAngleCallback;
90 mockSvgData.forEach((e) =>
91 expect(callBack(e, 0, null), equals(30)));
92 });
93 });
94
95 group('SvgArc.endAngleCallback', () {
96 test('is assigned defaultEndAngleCallback by default', () {
97 SvgArc svgArc = new SvgArc();
98 SelectionCallback<num> callBack = svgArc.endAngleCallback;
99 mockSvgData.forEach((e) =>
100 expect(callBack(e, 0, null), equals(e.endAngle)));
101 expect(callBack(null, 0, null), equals(0));
102 expect(callBack(new SvgArcData(0, 0, 0, null, 0, 0), 0, null), equals(0));
103 });
104 test('is assigned to (value) => value when set by value', () {
105 SvgArc svgArc = new SvgArc();
106 svgArc.endAngle = 30;
107 SelectionCallback<num> callBack = svgArc.endAngleCallback;
108 mockSvgData.forEach((e) =>
109 expect(callBack(e, 0, null), equals(30)));
110 });
111 });
112
113 test('SvgArc.centroid calculates the centroid of arc slice', () {
114 SvgArc svgArc = new SvgArc();
115 List centroid = svgArc.centroid(mockSvgData[0], 0, null);
116 expect(centroid[0], closeTo(0, EPSILON));
117 expect(centroid[1], closeTo(-50, EPSILON));
118 centroid = svgArc.centroid(mockSvgData[2], 0, null);
119 expect(centroid[0], closeTo(0, EPSILON));
120 expect(centroid[1], closeTo(50, EPSILON));
121 centroid = svgArc.centroid(mockSvgData[7], 0, null);
122 expect(centroid[0], closeTo(64.9519052838329, EPSILON));
123 expect(centroid[1], closeTo(37.5, EPSILON));
124 });
125
126 group('SvgArc.path', () {
127 test('generates concentric pie sector', () {
128 SvgArc svgArc = new SvgArc();
129 expect(svgArc.path(mockSvgData[2], 0, null),
130 equals('M0,100A100,100 0 1,1 0,-100A100,100 0 1,1 0,100Z'));
131 });
132 test('generates concentric donut circle', () {
133 SvgArc svgArc = new SvgArc();
134 expect(svgArc.path(mockSvgData[3], 0, null),
135 equals('M0,100A100,100 0 1,1 0,-100A100,100 0 1,1 0,100M0,'
136 '50A50,50 0 1,0 0,-50A50,50 0 1,0 0,50Z'));
137 });
138 test('correctly generates pie sector', () {
139 SvgArc svgArc = new SvgArc();
140 expect(svgArc.path(mockSvgData[5], 0, null),
141 equals('M6.123233995736766e-15,-100.0A100,100 0 0,1 '
142 '86.60254037844386,-50.0L43.30127018922193,'
143 '-25.0A50,50 0 0,0 3.061616997868383e-15,-50.0Z'));
144 expect(svgArc.path(mockSvgData[7], 0, null),
145 equals('M86.60254037844386,-50.0A100,100 0 0,1 '
146 '6.123233995736766e-15,100.0L3.061616997868383e-15,'
147 '50.0A50,50 0 0,0 43.30127018922193,-25.0Z'));
148 });
149 test('correctly generates donut slice', () {
150 SvgArc svgArc = new SvgArc();
151 expect(svgArc.path(mockSvgData[4], 0, null),
152 equals('M6.123233995736766e-15,-100.0A100,100 '
153 '0 0,1 86.60254037844386,-50.0L0,0Z'));
154 expect(svgArc.path(mockSvgData[6], 0, null),
155 equals('M86.60254037844386,-50.0A100,100 0 0,1 '
156 '6.123233995736766e-15,100.0L0,0Z'));
157 });
158 });
159
160 }
OLDNEW
« no previous file with comments | « packages/charted/test.disabled/selection/selection_test.dart ('k') | packages/charted/test.disabled/svg/svg_axis_test.dart » ('j') | no next file with comments »

Powered by Google App Engine