Index: packages/charted/test.disabled/layout/pie_layout_test.dart |
diff --git a/packages/charted/test.disabled/layout/pie_layout_test.dart b/packages/charted/test.disabled/layout/pie_layout_test.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..12fd13729832413628702f4ed39808b20c6befa1 |
--- /dev/null |
+++ b/packages/charted/test.disabled/layout/pie_layout_test.dart |
@@ -0,0 +1,82 @@ |
+/* |
+ * 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.layout; |
+ |
+testPieLayout() { |
+ List mockPieData = [ |
+ [5, 5, 10], |
+ [0, 0], |
+ [4], |
+ [10, 5, 5], // Case for sorting, results the same as the first case. |
+ ]; |
+ List mockPieAngle = [ |
+ [[0, PI / 2], [PI / 2, PI], [PI, PI * 2]], |
+ [[0, 0], [0, 0]], |
+ [[0, 2 * PI]], |
+ [[0, PI / 2], [PI / 2, PI], [PI, PI * 2]], |
+ ]; |
+ |
+ group('PieLayout.startAngleCallback', () { |
+ PieLayout pieLayout = new PieLayout(); |
+ test('= 0 by default', () { |
+ expect(pieLayout.startAngleCallback(null, 0, null), equals(0)); |
+ }); |
+ PieLayout pieLayout2 = new PieLayout(); |
+ pieLayout2.startAngle = 0.4; |
+ test('equals the manually set value after set by startAngle setter', () { |
+ expect(pieLayout2.startAngleCallback(null, 0, null), equals(0.4)); |
+ }); |
+ }); |
+ |
+ group('PieLayout.endAngleCallback', () { |
+ PieLayout pieLayout = new PieLayout(); |
+ test('= 2 * PI by default', () { |
+ expect(pieLayout.endAngleCallback(null, 0, null), equals(2 * PI)); |
+ }); |
+ PieLayout pieLayout2 = new PieLayout(); |
+ pieLayout2.endAngle = 0.4; |
+ test('equals the manually set value after set by endAngle setter', () { |
+ expect(pieLayout2.endAngleCallback(null, 0, null), equals(0.4)); |
+ }); |
+ }); |
+ |
+ group('PieLayout.layout', () { |
+ test('generates a list of SvgArcData object for pie-chart', () { |
+ PieLayout pieLayout = new PieLayout(); |
+ List slice = pieLayout.layout(mockPieData[0]); |
+ for (var i = 0; i < 3; ++i) { |
+ expect(slice[i].startAngle, closeTo(mockPieAngle[0][i][0], EPSILON)); |
+ expect(slice[i].endAngle, closeTo(mockPieAngle[0][i][1], EPSILON)); |
+ } |
+ }); |
+ test('generates zero-angled slice for total 0 data', () { |
+ PieLayout pieLayout = new PieLayout(); |
+ List slice = pieLayout.layout(mockPieData[1]); |
+ for (var i = 0; i < 2; ++i) { |
+ expect(slice[i].startAngle, closeTo(mockPieAngle[1][i][0], EPSILON)); |
+ expect(slice[i].endAngle, closeTo(mockPieAngle[1][i][1], EPSILON)); |
+ } |
+ }); |
+ test('generates concentric pie sector for solo non-zero data', () { |
+ PieLayout pieLayout = new PieLayout(); |
+ List slice = pieLayout.layout(mockPieData[2]); |
+ expect(slice[0].startAngle, closeTo(mockPieAngle[2][0][0], EPSILON)); |
+ expect(slice[0].endAngle, closeTo(mockPieAngle[2][0][1], EPSILON)); |
+ }); |
+ test('supports sorting data', () { |
+ PieLayout pieLayout = new PieLayout(); |
+ pieLayout.compare = (num a, num b) => (a - b).ceil(); |
+ List slice = pieLayout.layout(mockPieData[3]); |
+ for (var i = 0; i < 3; ++i) { |
+ expect(slice[i].startAngle, closeTo(mockPieAngle[3][i][0], EPSILON)); |
+ expect(slice[i].endAngle, closeTo(mockPieAngle[3][i][1], EPSILON)); |
+ } |
+ }); |
+ }); |
+} |