OLD | NEW |
(Empty) | |
| 1 library charted.test.transposetransformer; |
| 2 |
| 3 import 'package:charted/charts/charts.dart'; |
| 4 import 'package:unittest/unittest.dart'; |
| 5 |
| 6 main() { |
| 7 List COLUMNS = [ |
| 8 new ChartColumnSpec(label:'Country', type:ChartColumnSpec.TYPE_STRING), |
| 9 new ChartColumnSpec(label:'Stats1'), |
| 10 new ChartColumnSpec(label:'Stats2'), |
| 11 new ChartColumnSpec(label:'Stats3') |
| 12 ]; |
| 13 |
| 14 const List DATA = const [ |
| 15 const['USA', 9.50, 50, 2000], |
| 16 const['Japan',1.50, 99, 2000], |
| 17 const['Taiwan', 3.50, 127, 1337], |
| 18 const['France', 2.50, 29, 6000], |
| 19 const['Germany', 10.99, 999, 10000], |
| 20 const['England', 2.50, 10, 3000], |
| 21 const['Brazil', 1.50, 27, 6000], |
| 22 const['Argentina', 5.50, 37, 2000], |
| 23 ]; |
| 24 |
| 25 ChartData inputData = new ChartData(COLUMNS, DATA); |
| 26 |
| 27 test('Transpose ChartData', () { |
| 28 TransposeTransformer transformer = new TransposeTransformer(); |
| 29 ChartData result = transformer.transform(inputData); |
| 30 // Expected data: |
| 31 // ['Stats1', 9.50, 1.50, 3.50, 2.50, 10.99, 2.50, 1.50, 5.50] |
| 32 // ['Stats2', 50, 99, 127, 29, 999, 10, 27, 37] |
| 33 // ['Stats3', 2000, 2000, 1337, 6000, 10000, 3000, 6000, 2000] |
| 34 // While The chart column spec should contain new column specs with label |
| 35 // equal to the list of country names. |
| 36 |
| 37 // Stats1 |
| 38 expect(result.rows.elementAt(0).elementAt(0), equals('Stats1')); |
| 39 expect(result.rows.elementAt(0).elementAt(1), equals(9.50)); |
| 40 expect(result.rows.elementAt(0).elementAt(2), equals(1.50)); |
| 41 expect(result.rows.elementAt(0).elementAt(3), equals(3.50)); |
| 42 expect(result.rows.elementAt(0).elementAt(4), equals(2.50)); |
| 43 expect(result.rows.elementAt(0).elementAt(5), equals(10.99)); |
| 44 |
| 45 // Stats2 |
| 46 expect(result.rows.elementAt(1).elementAt(0), equals('Stats2')); |
| 47 expect(result.rows.elementAt(1).elementAt(1), equals(50)); |
| 48 expect(result.rows.elementAt(1).elementAt(2), equals(99)); |
| 49 expect(result.rows.elementAt(1).elementAt(3), equals(127)); |
| 50 expect(result.rows.elementAt(1).elementAt(4), equals(29)); |
| 51 expect(result.rows.elementAt(1).elementAt(5), equals(999)); |
| 52 |
| 53 // Stats3 |
| 54 expect(result.rows.elementAt(2).elementAt(0), equals('Stats3')); |
| 55 expect(result.rows.elementAt(2).elementAt(1), equals(2000)); |
| 56 expect(result.rows.elementAt(2).elementAt(2), equals(2000)); |
| 57 expect(result.rows.elementAt(2).elementAt(3), equals(1337)); |
| 58 expect(result.rows.elementAt(2).elementAt(4), equals(6000)); |
| 59 expect(result.rows.elementAt(2).elementAt(5), equals(10000)); |
| 60 |
| 61 // ColumnSpecs |
| 62 expect(result.columns.elementAt(0).label, equals('Country')); |
| 63 expect(result.columns.elementAt(1).label, equals('USA')); |
| 64 expect(result.columns.elementAt(2).label, equals('Japan')); |
| 65 expect(result.columns.elementAt(3).label, equals('Taiwan')); |
| 66 expect(result.columns.elementAt(4).label, equals('France')); |
| 67 expect(result.columns.elementAt(5).label, equals('Germany')); |
| 68 expect(result.columns.elementAt(6).label, equals('England')); |
| 69 expect(result.columns.elementAt(7).label, equals('Brazil')); |
| 70 |
| 71 }); |
| 72 |
| 73 test('Transposing data twice should produce the original data', () { |
| 74 TransposeTransformer t1 = new TransposeTransformer(); |
| 75 TransposeTransformer t2 = new TransposeTransformer(); |
| 76 ChartData result = t2.transform(t1.transform(inputData)); |
| 77 |
| 78 // Check all values are the same in the result and original data. |
| 79 for (var i = 0; i < result.rows.length; i++) { |
| 80 var row = result.rows.elementAt(i); |
| 81 for (var j = 0; j < row.length; j++) { |
| 82 expect(row.elementAt(j), |
| 83 equals((DATA.elementAt(i) as List).elementAt(j))); |
| 84 } |
| 85 } |
| 86 |
| 87 for (var i = 0; i < result.columns.length; i++) { |
| 88 expect(result.columns.elementAt(i).label, |
| 89 equals((COLUMNS.elementAt(i) as ChartColumnSpec).label)); |
| 90 } |
| 91 }); |
| 92 } |
OLD | NEW |