OLD | NEW |
(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.time; |
| 10 |
| 11 import 'package:charted/time/time.dart'; |
| 12 import 'package:unittest/unittest.dart'; |
| 13 |
| 14 timeTests() { |
| 15 List granularity = [ |
| 16 ['second', Time.second], |
| 17 ['minute', Time.minute], |
| 18 ['hour', Time.hour], |
| 19 ['day', Time.day], |
| 20 ['week', Time.week], |
| 21 ['month', Time.month], |
| 22 ['year', Time.year], |
| 23 ]; |
| 24 |
| 25 DateTime date = new DateTime(2014, 7, 21, 0, 32, 30, 345); |
| 26 List mockDate = [ |
| 27 /* Second */ |
| 28 [new DateTime(2014, 7, 21, 0, 32, 30), // floor |
| 29 new DateTime(2014, 7, 21, 0, 32, 31), // ceil |
| 30 new DateTime(2014, 7, 21, 0, 32, 30), // round |
| 31 new DateTime(2014, 7, 21, 0, 32, 31, 345) // offset 1 |
| 32 ], |
| 33 /* Minute */ |
| 34 [new DateTime(2014, 7, 21, 0, 32), // floor |
| 35 new DateTime(2014, 7, 21, 0, 33), // ceil |
| 36 new DateTime(2014, 7, 21, 0, 33), // round |
| 37 new DateTime(2014, 7, 21, 0, 33, 30, 345) // offset 1 |
| 38 ], |
| 39 /* Hour */ |
| 40 [new DateTime(2014, 7, 21, 0), // floor |
| 41 new DateTime(2014, 7, 21, 1), // ceil |
| 42 new DateTime(2014, 7, 21, 1), // round |
| 43 new DateTime(2014, 7, 21, 1, 32, 30, 345) // offset 1 |
| 44 ], |
| 45 /* Day */ |
| 46 [new DateTime(2014, 7, 21), // floor |
| 47 new DateTime(2014, 7, 22), // ceil |
| 48 new DateTime(2014, 7, 21), // round |
| 49 new DateTime(2014, 7, 22, 0, 32, 30, 345) // offset 1 |
| 50 ], |
| 51 /* Week */ |
| 52 [new DateTime(2014, 7, 21), // floor |
| 53 new DateTime(2014, 7, 28), // ceil |
| 54 new DateTime(2014, 7, 21), // round |
| 55 new DateTime(2014, 7, 28, 0, 32, 30, 345) // offset 1 |
| 56 ], |
| 57 /* Month */ |
| 58 [new DateTime(2014, 7), // floor |
| 59 new DateTime(2014, 8), // ceil |
| 60 new DateTime(2014, 8), // round |
| 61 new DateTime(2014, 8, 21, 0, 32, 30, 345) // offset 1 |
| 62 ], |
| 63 /* Year */ |
| 64 [new DateTime(2014), // floor |
| 65 new DateTime(2015), // ceil |
| 66 new DateTime(2015), // round |
| 67 new DateTime(2015, 7, 21, 0, 32, 30, 345) // offset 1 |
| 68 ], |
| 69 ]; |
| 70 |
| 71 for (var i = 0; i < granularity.length; i++) { |
| 72 test('Time.${granularity[i][0]} returns a [TimeInterval] ' |
| 73 'with ${granularity[i][0]} granularity', () { |
| 74 expect(granularity[i][1].floor(date) |
| 75 .compareTo(mockDate[i][0]), equals(0)); |
| 76 expect(granularity[i][1].ceil(date) |
| 77 .compareTo(mockDate[i][1]), equals(0)); |
| 78 expect(granularity[i][1].round(date) |
| 79 .compareTo(mockDate[i][2]), equals(0)); |
| 80 expect(granularity[i][1].offset(date, 1) |
| 81 .compareTo(mockDate[i][3]), equals(0)); |
| 82 }); |
| 83 } |
| 84 |
| 85 test('Time.second.range returns a list of [DateTime] nicely stepped', () { |
| 86 List range = Time.second.range( |
| 87 new DateTime(2014, 1, 1, 0, 0, 0, 123), |
| 88 new DateTime(2014, 1, 1, 0, 0, 20), 5); |
| 89 expect(range.length, equals(3)); |
| 90 expect(range[0].compareTo(new DateTime(2014, 1, 1, 0, 0, 5)), equals(0)); |
| 91 expect(range[1].compareTo(new DateTime(2014, 1, 1, 0, 0, 10)), equals(0)); |
| 92 expect(range[2].compareTo(new DateTime(2014, 1, 1, 0, 0, 15)), equals(0)); |
| 93 }); |
| 94 |
| 95 test('Time.minute.range returns a list of [DateTime] nicely stepped', () { |
| 96 List range = Time.minute.range( |
| 97 new DateTime(2014, 1, 1, 0, 4, 10), |
| 98 new DateTime(2014, 1, 1, 0, 10, 20), 2); |
| 99 expect(range.length, equals(3)); |
| 100 expect(range[0].compareTo(new DateTime(2014, 1, 1, 0, 6)), equals(0)); |
| 101 expect(range[1].compareTo(new DateTime(2014, 1, 1, 0, 8)), equals(0)); |
| 102 expect(range[2].compareTo(new DateTime(2014, 1, 1, 0, 10)), equals(0)); |
| 103 }); |
| 104 |
| 105 test('Time.hour.range returns a list of [DateTime] nicely stepped', () { |
| 106 List range = Time.hour.range( |
| 107 new DateTime(2014, 1, 1, 20, 15), |
| 108 new DateTime(2014, 1, 2, 2, 10, 20), 2); |
| 109 expect(range.length, equals(3)); |
| 110 expect(range[0].compareTo(new DateTime(2014, 1, 1, 22)), equals(0)); |
| 111 expect(range[1].compareTo(new DateTime(2014, 1, 2, 0)), equals(0)); |
| 112 expect(range[2].compareTo(new DateTime(2014, 1, 2, 2)), equals(0)); |
| 113 }); |
| 114 |
| 115 test('Time.day.range returns a list of [DateTime] nicely stepped', () { |
| 116 List range = Time.day.range( |
| 117 new DateTime(2014, 1, 20, 10), |
| 118 new DateTime(2014, 1, 29, 15), 3); |
| 119 expect(range.length, equals(3)); |
| 120 expect(range[0].compareTo(new DateTime(2014, 1, 22)), equals(0)); |
| 121 expect(range[1].compareTo(new DateTime(2014, 1, 25)), equals(0)); |
| 122 expect(range[2].compareTo(new DateTime(2014, 1, 28)), equals(0)); |
| 123 }); |
| 124 |
| 125 test('Time.week.range returns a list of [DateTime] nicely stepped', () { |
| 126 List range = Time.week.range( |
| 127 new DateTime(2013, 12, 31, 10), |
| 128 new DateTime(2014, 1, 29, 15), 1); |
| 129 expect(range.length, equals(4)); |
| 130 expect(range[0].compareTo(new DateTime(2014, 1, 4)), equals(0)); |
| 131 expect(range[1].compareTo(new DateTime(2014, 1, 11)), equals(0)); |
| 132 expect(range[2].compareTo(new DateTime(2014, 1, 18)), equals(0)); |
| 133 expect(range[3].compareTo(new DateTime(2014, 1, 25)), equals(0)); |
| 134 }); |
| 135 |
| 136 test('Time.month.range returns a list of [DateTime] nicely stepped', () { |
| 137 List range = Time.month.range( |
| 138 new DateTime(2013, 12, 31, 10), |
| 139 new DateTime(2014, 5, 29, 15), 2); |
| 140 expect(range.length, equals(3)); |
| 141 expect(range[0].compareTo(new DateTime(2014, 1, 1)), equals(0)); |
| 142 expect(range[1].compareTo(new DateTime(2014, 3, 1)), equals(0)); |
| 143 expect(range[2].compareTo(new DateTime(2014, 5, 1)), equals(0)); |
| 144 }); |
| 145 |
| 146 test('Time.year.range returns a list of [DateTime] nicely stepped', () { |
| 147 List range = Time.year.range( |
| 148 new DateTime(2013, 12, 31, 10), |
| 149 new DateTime(2018, 5, 29, 15), 2); |
| 150 expect(range.length, equals(3)); |
| 151 expect(range[0].compareTo(new DateTime(2014, 1, 1)), equals(0)); |
| 152 expect(range[1].compareTo(new DateTime(2016, 1, 1)), equals(0)); |
| 153 expect(range[2].compareTo(new DateTime(2018, 1, 1)), equals(0)); |
| 154 }); |
| 155 } |
OLD | NEW |