Index: packages/charted/test.disabled/charts/transformers/transpose_transformer_test.dart |
diff --git a/packages/charted/test.disabled/charts/transformers/transpose_transformer_test.dart b/packages/charted/test.disabled/charts/transformers/transpose_transformer_test.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..1c707216bbe04b17e4d817a9ac79376aa5202f9c |
--- /dev/null |
+++ b/packages/charted/test.disabled/charts/transformers/transpose_transformer_test.dart |
@@ -0,0 +1,92 @@ |
+library charted.test.transposetransformer; |
+ |
+import 'package:charted/charts/charts.dart'; |
+import 'package:unittest/unittest.dart'; |
+ |
+main() { |
+ List COLUMNS = [ |
+ new ChartColumnSpec(label:'Country', type:ChartColumnSpec.TYPE_STRING), |
+ new ChartColumnSpec(label:'Stats1'), |
+ new ChartColumnSpec(label:'Stats2'), |
+ new ChartColumnSpec(label:'Stats3') |
+ ]; |
+ |
+ const List DATA = const [ |
+ const['USA', 9.50, 50, 2000], |
+ const['Japan',1.50, 99, 2000], |
+ const['Taiwan', 3.50, 127, 1337], |
+ const['France', 2.50, 29, 6000], |
+ const['Germany', 10.99, 999, 10000], |
+ const['England', 2.50, 10, 3000], |
+ const['Brazil', 1.50, 27, 6000], |
+ const['Argentina', 5.50, 37, 2000], |
+ ]; |
+ |
+ ChartData inputData = new ChartData(COLUMNS, DATA); |
+ |
+ test('Transpose ChartData', () { |
+ TransposeTransformer transformer = new TransposeTransformer(); |
+ ChartData result = transformer.transform(inputData); |
+ // Expected data: |
+ // ['Stats1', 9.50, 1.50, 3.50, 2.50, 10.99, 2.50, 1.50, 5.50] |
+ // ['Stats2', 50, 99, 127, 29, 999, 10, 27, 37] |
+ // ['Stats3', 2000, 2000, 1337, 6000, 10000, 3000, 6000, 2000] |
+ // While The chart column spec should contain new column specs with label |
+ // equal to the list of country names. |
+ |
+ // Stats1 |
+ expect(result.rows.elementAt(0).elementAt(0), equals('Stats1')); |
+ expect(result.rows.elementAt(0).elementAt(1), equals(9.50)); |
+ expect(result.rows.elementAt(0).elementAt(2), equals(1.50)); |
+ expect(result.rows.elementAt(0).elementAt(3), equals(3.50)); |
+ expect(result.rows.elementAt(0).elementAt(4), equals(2.50)); |
+ expect(result.rows.elementAt(0).elementAt(5), equals(10.99)); |
+ |
+ // Stats2 |
+ expect(result.rows.elementAt(1).elementAt(0), equals('Stats2')); |
+ expect(result.rows.elementAt(1).elementAt(1), equals(50)); |
+ expect(result.rows.elementAt(1).elementAt(2), equals(99)); |
+ expect(result.rows.elementAt(1).elementAt(3), equals(127)); |
+ expect(result.rows.elementAt(1).elementAt(4), equals(29)); |
+ expect(result.rows.elementAt(1).elementAt(5), equals(999)); |
+ |
+ // Stats3 |
+ expect(result.rows.elementAt(2).elementAt(0), equals('Stats3')); |
+ expect(result.rows.elementAt(2).elementAt(1), equals(2000)); |
+ expect(result.rows.elementAt(2).elementAt(2), equals(2000)); |
+ expect(result.rows.elementAt(2).elementAt(3), equals(1337)); |
+ expect(result.rows.elementAt(2).elementAt(4), equals(6000)); |
+ expect(result.rows.elementAt(2).elementAt(5), equals(10000)); |
+ |
+ // ColumnSpecs |
+ expect(result.columns.elementAt(0).label, equals('Country')); |
+ expect(result.columns.elementAt(1).label, equals('USA')); |
+ expect(result.columns.elementAt(2).label, equals('Japan')); |
+ expect(result.columns.elementAt(3).label, equals('Taiwan')); |
+ expect(result.columns.elementAt(4).label, equals('France')); |
+ expect(result.columns.elementAt(5).label, equals('Germany')); |
+ expect(result.columns.elementAt(6).label, equals('England')); |
+ expect(result.columns.elementAt(7).label, equals('Brazil')); |
+ |
+ }); |
+ |
+ test('Transposing data twice should produce the original data', () { |
+ TransposeTransformer t1 = new TransposeTransformer(); |
+ TransposeTransformer t2 = new TransposeTransformer(); |
+ ChartData result = t2.transform(t1.transform(inputData)); |
+ |
+ // Check all values are the same in the result and original data. |
+ for (var i = 0; i < result.rows.length; i++) { |
+ var row = result.rows.elementAt(i); |
+ for (var j = 0; j < row.length; j++) { |
+ expect(row.elementAt(j), |
+ equals((DATA.elementAt(i) as List).elementAt(j))); |
+ } |
+ } |
+ |
+ for (var i = 0; i < result.columns.length; i++) { |
+ expect(result.columns.elementAt(i).label, |
+ equals((COLUMNS.elementAt(i) as ChartColumnSpec).label)); |
+ } |
+ }); |
+} |