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 part of charted.test.scale; |
| 10 |
| 11 testTimeScale() { |
| 12 List mockTimes = [ |
| 13 // 0: differ in milliseconds |
| 14 new DateTime(2014, 1, 3, 0, 2, 3, 0), |
| 15 new DateTime(2014, 1, 3, 0, 2, 3, 125), |
| 16 new DateTime(2014, 1, 3, 0, 2, 3, 890), |
| 17 // 3: differ in seconds: |
| 18 new DateTime(2014, 1, 3, 0, 2, 3), |
| 19 new DateTime(2014, 1, 3, 0, 2, 4), |
| 20 new DateTime(2014, 1, 3, 0, 2, 10, 10), |
| 21 // 6: differ in minutes: |
| 22 new DateTime(2014, 1, 3, 0, 3, 4), |
| 23 new DateTime(2014, 1, 3, 0, 5, 30), |
| 24 new DateTime(2014, 1, 3, 0, 20, 31, 23), |
| 25 // 9: differ in hours: |
| 26 new DateTime(2014, 1, 3, 1, 2, 13), |
| 27 new DateTime(2014, 1, 3, 5, 25, 3), |
| 28 new DateTime(2014, 1, 3, 23, 45, 43, 100), |
| 29 // 12: differ in days: |
| 30 new DateTime(2014, 1, 5, 2, 1, 23, 200), |
| 31 new DateTime(2014, 1, 14, 10, 0, 3, 25), |
| 32 new DateTime(2014, 1, 30, 20, 32, 33), |
| 33 // 15: differ in months: |
| 34 new DateTime(2014, 2, 13, 3, 48, 53), |
| 35 new DateTime(2014, 6, 8, 6, 25, 13), |
| 36 new DateTime(2014, 12, 20, 20, 17, 3, 400), |
| 37 // 18: differ in years: |
| 38 new DateTime(2015, 3, 8, 23, 23, 6), |
| 39 new DateTime(2017, 8, 23, 1, 10, 4, 100), |
| 40 new DateTime(2044, 1, 5, 0, 9, 8, 100), |
| 41 ]; |
| 42 |
| 43 |
| 44 test('TimeScale.nice() extends domain boundary elements to nice values', () { |
| 45 TimeScale timeScale = new TimeScale(); |
| 46 timeScale.domain = [mockTimes[0], mockTimes[8]]; |
| 47 timeScale.nice(); |
| 48 expect(timeScale.domain, orderedEquals([ |
| 49 new DateTime(2014, 1, 3, 0, 2).millisecondsSinceEpoch, |
| 50 new DateTime(2014, 1, 3, 0, 21).millisecondsSinceEpoch |
| 51 ])); |
| 52 timeScale.domain = [mockTimes[1], mockTimes[10]]; |
| 53 timeScale.nice(); |
| 54 expect(timeScale.domain, orderedEquals([ |
| 55 new DateTime(2014, 1, 3).millisecondsSinceEpoch, |
| 56 new DateTime(2014, 1, 3, 5, 30).millisecondsSinceEpoch |
| 57 ])); |
| 58 timeScale.domain = [mockTimes[13], mockTimes[19]]; |
| 59 timeScale.nice(5); |
| 60 expect(timeScale.domain, orderedEquals([ |
| 61 new DateTime(2014, 1).millisecondsSinceEpoch, |
| 62 new DateTime(2018, 1).millisecondsSinceEpoch |
| 63 ])); |
| 64 }); |
| 65 |
| 66 test('TimeScale.niceInterval() extends domain to nice values', () { |
| 67 TimeScale timeScale = new TimeScale(); |
| 68 timeScale.domain = [mockTimes[2], mockTimes[11]]; |
| 69 timeScale.niceInterval(1, 3); |
| 70 expect(timeScale.domain, orderedEquals([ |
| 71 new DateTime(2014, 1, 3).millisecondsSinceEpoch, |
| 72 new DateTime(2014, 1, 4).millisecondsSinceEpoch |
| 73 ])); |
| 74 timeScale.domain = [mockTimes[5], mockTimes[6]]; |
| 75 timeScale.niceInterval(5, 2); |
| 76 expect(timeScale.domain, orderedEquals([ |
| 77 new DateTime(2014, 1, 3, 0, 2).millisecondsSinceEpoch, |
| 78 new DateTime(2014, 1, 3, 0, 3, 15).millisecondsSinceEpoch |
| 79 ])); |
| 80 timeScale.domain = [mockTimes[14], mockTimes[18]]; |
| 81 timeScale.niceInterval(16, 3); |
| 82 expect(timeScale.domain, orderedEquals([ |
| 83 new DateTime(2014, 1, 1).millisecondsSinceEpoch, |
| 84 new DateTime(2015, 4, 1).millisecondsSinceEpoch |
| 85 ])); |
| 86 }); |
| 87 |
| 88 test('TimeScale.ticks() returns correct tick values', () { |
| 89 TimeScale timeScale = new TimeScale(); |
| 90 timeScale.domain = [mockTimes[3], mockTimes[9]]; |
| 91 expect(timeScale.ticks(3), orderedEquals([ |
| 92 new DateTime(2014, 1, 3, 0, 15), |
| 93 new DateTime(2014, 1, 3, 0, 30), |
| 94 new DateTime(2014, 1, 3, 0, 45), |
| 95 new DateTime(2014, 1, 3, 1, 0) |
| 96 ])); |
| 97 timeScale.domain = [mockTimes[4], mockTimes[15]]; |
| 98 expect(timeScale.ticks(5), orderedEquals([ |
| 99 new DateTime(2014, 1, 7), |
| 100 new DateTime(2014, 1, 14), |
| 101 new DateTime(2014, 1, 21), |
| 102 new DateTime(2014, 1, 28), |
| 103 new DateTime(2014, 2, 4), |
| 104 new DateTime(2014, 2, 11) |
| 105 ])); |
| 106 timeScale.domain = [mockTimes[7], mockTimes[19]]; |
| 107 expect(timeScale.ticks(3), orderedEquals([ |
| 108 new DateTime(2015, 1, 1), |
| 109 new DateTime(2016, 1, 1), |
| 110 new DateTime(2017, 1, 1) |
| 111 ])); |
| 112 }); |
| 113 |
| 114 test('TimeScale.ticksInterval() returns correct tick values', () { |
| 115 TimeScale timeScale = new TimeScale(); |
| 116 timeScale.domain = [mockTimes[0], mockTimes[12]]; |
| 117 expect(timeScale.ticksInterval(3, 2), orderedEquals([ |
| 118 new DateTime(2014, 1, 3, 12), |
| 119 new DateTime(2014, 1, 4), |
| 120 new DateTime(2014, 1, 4, 12), |
| 121 new DateTime(2014, 1, 5) |
| 122 ])); |
| 123 timeScale.domain = [mockTimes[16], mockTimes[17]]; |
| 124 expect(timeScale.ticksInterval(7, 10), orderedEquals([ |
| 125 new DateTime(2014, 7, 1), |
| 126 new DateTime(2014, 8, 1), |
| 127 new DateTime(2014, 9, 1), |
| 128 new DateTime(2014, 10, 1), |
| 129 new DateTime(2014, 11, 1), |
| 130 new DateTime(2014, 12, 1) |
| 131 ])); |
| 132 timeScale.domain = [mockTimes[13], mockTimes[20]]; |
| 133 expect(timeScale.ticksInterval(2, 5), orderedEquals([ |
| 134 new DateTime(2020, 1, 1), |
| 135 new DateTime(2040, 1, 1) |
| 136 ])); |
| 137 }); |
| 138 |
| 139 } |
OLD | NEW |