paul@41 | 1 | #!/usr/bin/env python |
paul@41 | 2 | |
paul@71 | 3 | """ |
paul@71 | 4 | Test qualifiers for recurring events. |
paul@71 | 5 | |
paul@75 | 6 | Copyright (C) 2014, 2015, 2017 Paul Boddie <paul@boddie.org.uk> |
paul@71 | 7 | |
paul@71 | 8 | This program is free software; you can redistribute it and/or modify it under |
paul@71 | 9 | the terms of the GNU General Public License as published by the Free Software |
paul@71 | 10 | Foundation; either version 3 of the License, or (at your option) any later |
paul@71 | 11 | version. |
paul@71 | 12 | |
paul@71 | 13 | This program is distributed in the hope that it will be useful, but WITHOUT |
paul@71 | 14 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS |
paul@71 | 15 | FOR A PARTICULAR PURPOSE. See the GNU General Public License for more |
paul@71 | 16 | details. |
paul@71 | 17 | |
paul@71 | 18 | You should have received a copy of the GNU General Public License along with |
paul@71 | 19 | this program. If not, see <http://www.gnu.org/licenses/>. |
paul@71 | 20 | """ |
paul@71 | 21 | |
paul@41 | 22 | from vRecurrence import * |
paul@41 | 23 | |
paul@41 | 24 | def show(l): |
paul@41 | 25 | for x in l: |
paul@41 | 26 | print x |
paul@41 | 27 | print |
paul@41 | 28 | |
paul@41 | 29 | qualifiers = [ |
paul@41 | 30 | ("YEARLY", {"interval" : 1}) |
paul@41 | 31 | ] |
paul@41 | 32 | |
paul@89 | 33 | sel = make_selectors(qualifiers) |
paul@89 | 34 | show(sel) |
paul@41 | 35 | dt = (1997, 11, 2) |
paul@41 | 36 | l = get_datetime_structure(dt) |
paul@41 | 37 | show(l) |
paul@91 | 38 | csel = combine_datetime_with_selectors(dt, sel) |
paul@91 | 39 | show(csel) |
paul@41 | 40 | |
paul@89 | 41 | s = get_selector(dt, sel) |
paul@92 | 42 | csel = get_selectors_from_selector(s) |
paul@92 | 43 | show(csel) |
paul@89 | 44 | |
paul@43 | 45 | l = s.materialise(dt, (2003, 12, 24)) |
paul@47 | 46 | print len(l) == 7, 7, len(l) |
paul@47 | 47 | print l[0] == (1997, 11, 2), (1997, 11, 2), l[0] |
paul@47 | 48 | print l[-1] == (2003, 11, 2), (2003, 11, 2), l[-1] |
paul@41 | 49 | print |
paul@41 | 50 | |
paul@41 | 51 | qualifiers = [ |
paul@41 | 52 | ("YEARLY", {"interval" : 2}), |
paul@41 | 53 | ("BYMONTH", {"values" : [1]}), |
paul@89 | 54 | ("BYDAY", {"values" : [(7, None)]}), |
paul@41 | 55 | ("BYHOUR", {"values" : [8, 9]}), |
paul@41 | 56 | ("BYMINUTE", {"values" : [30]}) |
paul@41 | 57 | ] |
paul@41 | 58 | |
paul@89 | 59 | sel = make_selectors(qualifiers) |
paul@89 | 60 | show(sel) |
paul@41 | 61 | dt = (1997, 1, 5, 8, 30, 0) |
paul@41 | 62 | l = get_datetime_structure(dt) |
paul@41 | 63 | show(l) |
paul@91 | 64 | csel = combine_datetime_with_selectors(dt, sel) |
paul@91 | 65 | show(csel) |
paul@89 | 66 | |
paul@89 | 67 | s = get_selector(dt, sel) |
paul@92 | 68 | csel = get_selectors_from_selector(s) |
paul@92 | 69 | show(csel) |
paul@41 | 70 | |
paul@43 | 71 | l = s.materialise(dt, (2003, 12, 24, 0, 0, 0)) |
paul@89 | 72 | print len(l) == 34, 34, len(l) |
paul@89 | 73 | print l[0] == (1997, 1, 5, 8, 30, 0), (1997, 1, 5, 8, 30, 0), l[0] |
paul@89 | 74 | print l[-1] == (2003, 1, 26, 9, 30, 0), (2003, 1, 26, 9, 30, 0), l[-1] |
paul@41 | 75 | print |
paul@41 | 76 | |
paul@41 | 77 | qualifiers = [ |
paul@79 | 78 | ("DAILY", {"interval" : 1}), |
paul@79 | 79 | ("COUNT", {"values" : [10]}) |
paul@41 | 80 | ] |
paul@41 | 81 | |
paul@89 | 82 | sel = make_selectors(qualifiers) |
paul@89 | 83 | show(sel) |
paul@41 | 84 | dt = (1997, 9, 2, 9, 0, 0) |
paul@41 | 85 | l = get_datetime_structure(dt) |
paul@41 | 86 | show(l) |
paul@91 | 87 | csel = combine_datetime_with_selectors(dt, sel) |
paul@91 | 88 | show(csel) |
paul@41 | 89 | |
paul@89 | 90 | s = get_selector(dt, sel) |
paul@92 | 91 | csel = get_selectors_from_selector(s) |
paul@92 | 92 | show(csel) |
paul@89 | 93 | |
paul@79 | 94 | l = s.materialise(dt, (1997, 12, 24)) |
paul@47 | 95 | print len(l) == 10, 10, len(l) |
paul@47 | 96 | print l[0] == (1997, 9, 2, 9, 0, 0), (1997, 9, 2, 9, 0, 0), l[0] |
paul@47 | 97 | print l[-1] == (1997, 9, 11, 9, 0, 0), (1997, 9, 11, 9, 0, 0), l[-1] |
paul@41 | 98 | print |
paul@41 | 99 | |
paul@41 | 100 | qualifiers = [ |
paul@41 | 101 | ("DAILY", {"interval" : 1}) |
paul@41 | 102 | ] |
paul@41 | 103 | |
paul@89 | 104 | sel = make_selectors(qualifiers) |
paul@89 | 105 | show(sel) |
paul@41 | 106 | dt = (1997, 9, 2, 9, 0, 0) |
paul@41 | 107 | l = get_datetime_structure(dt) |
paul@41 | 108 | show(l) |
paul@91 | 109 | csel = combine_datetime_with_selectors(dt, sel) |
paul@91 | 110 | show(csel) |
paul@41 | 111 | |
paul@89 | 112 | s = get_selector(dt, sel) |
paul@92 | 113 | csel = get_selectors_from_selector(s) |
paul@92 | 114 | show(csel) |
paul@89 | 115 | |
paul@43 | 116 | l = s.materialise(dt, (1997, 12, 24, 0, 0, 0)) |
paul@47 | 117 | print len(l) == 113, 113, len(l) |
paul@47 | 118 | print l[0] == (1997, 9, 2, 9, 0, 0), (1997, 9, 2, 9, 0, 0), l[0] |
paul@47 | 119 | print l[-1] == (1997, 12, 23, 9, 0, 0), (1997, 12, 23, 9, 0, 0), l[-1] |
paul@41 | 120 | print |
paul@41 | 121 | |
paul@41 | 122 | qualifiers = [ |
paul@41 | 123 | ("DAILY", {"interval" : 2}) |
paul@41 | 124 | ] |
paul@41 | 125 | |
paul@89 | 126 | sel = make_selectors(qualifiers) |
paul@89 | 127 | show(sel) |
paul@41 | 128 | dt = (1997, 9, 2, 9, 0, 0) |
paul@41 | 129 | l = get_datetime_structure(dt) |
paul@41 | 130 | show(l) |
paul@91 | 131 | csel = combine_datetime_with_selectors(dt, sel) |
paul@91 | 132 | show(csel) |
paul@41 | 133 | |
paul@89 | 134 | s = get_selector(dt, sel) |
paul@92 | 135 | csel = get_selectors_from_selector(s) |
paul@92 | 136 | show(csel) |
paul@89 | 137 | |
paul@43 | 138 | l = s.materialise(dt, (1997, 12, 24, 0, 0, 0)) |
paul@47 | 139 | print len(l) == 57, 57, len(l) |
paul@47 | 140 | print l[0] == (1997, 9, 2, 9, 0, 0), (1997, 9, 2, 9, 0, 0), l[0] |
paul@47 | 141 | print l[-1] == (1997, 12, 23, 9, 0, 0), (1997, 12, 23, 9, 0, 0), l[-1] |
paul@41 | 142 | print |
paul@41 | 143 | |
paul@41 | 144 | qualifiers = [ |
paul@41 | 145 | ("WEEKLY", {"interval" : 1}) |
paul@41 | 146 | ] |
paul@41 | 147 | |
paul@89 | 148 | sel = make_selectors(qualifiers) |
paul@89 | 149 | show(sel) |
paul@41 | 150 | dt = (1997, 9, 2, 9, 0, 0) |
paul@41 | 151 | l = get_datetime_structure(dt) |
paul@41 | 152 | show(l) |
paul@91 | 153 | csel = combine_datetime_with_selectors(dt, sel) |
paul@91 | 154 | show(csel) |
paul@41 | 155 | |
paul@89 | 156 | s = get_selector(dt, sel) |
paul@92 | 157 | csel = get_selectors_from_selector(s) |
paul@92 | 158 | show(csel) |
paul@89 | 159 | |
paul@43 | 160 | l = s.materialise(dt, (1997, 12, 24, 0, 0, 0)) |
paul@47 | 161 | print len(l) == 17, 17, len(l) |
paul@47 | 162 | print l[0] == (1997, 9, 2, 9, 0, 0), (1997, 9, 2, 9, 0, 0), l[0] |
paul@47 | 163 | print l[-1] == (1997, 12, 23, 9, 0, 0), (1997, 12, 23, 9, 0, 0), l[-1] |
paul@41 | 164 | print |
paul@41 | 165 | |
paul@41 | 166 | qualifiers = [ |
paul@79 | 167 | ("DAILY", {"interval" : 10}), |
paul@79 | 168 | ("COUNT", {"values" : [5]}) |
paul@41 | 169 | ] |
paul@41 | 170 | |
paul@89 | 171 | sel = make_selectors(qualifiers) |
paul@89 | 172 | show(sel) |
paul@41 | 173 | dt = (1997, 9, 2, 9, 0, 0) |
paul@41 | 174 | l = get_datetime_structure(dt) |
paul@41 | 175 | show(l) |
paul@91 | 176 | csel = combine_datetime_with_selectors(dt, sel) |
paul@91 | 177 | show(csel) |
paul@41 | 178 | |
paul@89 | 179 | s = get_selector(dt, sel) |
paul@92 | 180 | csel = get_selectors_from_selector(s) |
paul@92 | 181 | show(csel) |
paul@89 | 182 | |
paul@79 | 183 | l = s.materialise(dt, (1997, 12, 24, 0, 0, 0)) |
paul@47 | 184 | print len(l) == 5, 5, len(l) |
paul@47 | 185 | print l[0] == (1997, 9, 2, 9, 0, 0), (1997, 9, 2, 9, 0, 0), l[0] |
paul@47 | 186 | print l[-1] == (1997, 10, 12, 9, 0, 0), (1997, 10, 12, 9, 0, 0), l[-1] |
paul@41 | 187 | print |
paul@41 | 188 | |
paul@41 | 189 | qualifiers = [ |
paul@41 | 190 | ("YEARLY", {"interval" : 1}), |
paul@41 | 191 | ("BYMONTH", {"values" : [1]}), |
paul@42 | 192 | ("BYDAY", {"values" : [(1, None), (2, None), (3, None), (4, None), (5, None), (6, None), (7, None)]}) |
paul@41 | 193 | ] |
paul@41 | 194 | |
paul@89 | 195 | sel = make_selectors(qualifiers) |
paul@89 | 196 | show(sel) |
paul@41 | 197 | dt = (1998, 1, 1, 9, 0, 0) |
paul@41 | 198 | l = get_datetime_structure(dt) |
paul@41 | 199 | show(l) |
paul@91 | 200 | csel = combine_datetime_with_selectors(dt, sel) |
paul@91 | 201 | show(csel) |
paul@41 | 202 | |
paul@89 | 203 | s = get_selector(dt, sel) |
paul@92 | 204 | csel = get_selectors_from_selector(s) |
paul@92 | 205 | show(csel) |
paul@89 | 206 | |
paul@43 | 207 | l = s.materialise(dt, (2000, 1, 31, 14, 0, 0)) |
paul@47 | 208 | print len(l) == 93, 93, len(l) |
paul@47 | 209 | print l[0] == (1998, 1, 1, 9, 0, 0), (1998, 1, 1, 9, 0, 0), l[0] |
paul@47 | 210 | print l[-1] == (2000, 1, 31, 9, 0, 0), (2000, 1, 31, 9, 0, 0), l[-1] |
paul@41 | 211 | print |
paul@41 | 212 | |
paul@41 | 213 | qualifiers = [ |
paul@41 | 214 | ("DAILY", {"interval" : 1}), |
paul@41 | 215 | ("BYMONTH", {"values" : [1]}) |
paul@41 | 216 | ] |
paul@41 | 217 | |
paul@89 | 218 | sel = make_selectors(qualifiers) |
paul@89 | 219 | show(sel) |
paul@41 | 220 | dt = (1998, 1, 1, 9, 0, 0) |
paul@41 | 221 | l = get_datetime_structure(dt) |
paul@41 | 222 | show(l) |
paul@91 | 223 | csel = combine_datetime_with_selectors(dt, sel) |
paul@91 | 224 | show(csel) |
paul@41 | 225 | |
paul@89 | 226 | s = get_selector(dt, sel) |
paul@92 | 227 | csel = get_selectors_from_selector(s) |
paul@92 | 228 | show(csel) |
paul@89 | 229 | |
paul@43 | 230 | l = s.materialise(dt, (2000, 1, 31, 14, 0, 0)) |
paul@47 | 231 | print len(l) == 93, 93, len(l) |
paul@47 | 232 | print l[0] == (1998, 1, 1, 9, 0, 0), (1998, 1, 1, 9, 0, 0), l[0] |
paul@47 | 233 | print l[-1] == (2000, 1, 31, 9, 0, 0), (2000, 1, 31, 9, 0, 0), l[-1] |
paul@41 | 234 | print |
paul@41 | 235 | |
paul@41 | 236 | qualifiers = [ |
paul@79 | 237 | ("WEEKLY", {"interval" : 1}), |
paul@79 | 238 | ("COUNT", {"values" : [10]}) |
paul@41 | 239 | ] |
paul@41 | 240 | |
paul@89 | 241 | sel = make_selectors(qualifiers) |
paul@89 | 242 | show(sel) |
paul@41 | 243 | dt = (1997, 9, 2, 9, 0, 0) |
paul@41 | 244 | l = get_datetime_structure(dt) |
paul@41 | 245 | show(l) |
paul@91 | 246 | csel = combine_datetime_with_selectors(dt, sel) |
paul@91 | 247 | show(csel) |
paul@41 | 248 | |
paul@89 | 249 | s = get_selector(dt, sel) |
paul@92 | 250 | csel = get_selectors_from_selector(s) |
paul@92 | 251 | show(csel) |
paul@89 | 252 | |
paul@79 | 253 | l = s.materialise(dt, (1997, 12, 24, 0, 0, 0)) |
paul@47 | 254 | print len(l) == 10, 10, len(l) |
paul@47 | 255 | print l[0] == (1997, 9, 2, 9, 0, 0), (1997, 9, 2, 9, 0, 0), l[0] |
paul@47 | 256 | print l[-1] == (1997, 11, 4, 9, 0, 0), (1997, 11, 4, 9, 0, 0), l[-1] |
paul@41 | 257 | print |
paul@41 | 258 | |
paul@41 | 259 | qualifiers = [ |
paul@41 | 260 | ("WEEKLY", {"interval" : 1}) |
paul@41 | 261 | ] |
paul@41 | 262 | |
paul@89 | 263 | sel = make_selectors(qualifiers) |
paul@89 | 264 | show(sel) |
paul@41 | 265 | dt = (1997, 9, 2, 9, 0, 0) |
paul@41 | 266 | l = get_datetime_structure(dt) |
paul@41 | 267 | show(l) |
paul@91 | 268 | csel = combine_datetime_with_selectors(dt, sel) |
paul@91 | 269 | show(csel) |
paul@41 | 270 | |
paul@89 | 271 | s = get_selector(dt, sel) |
paul@92 | 272 | csel = get_selectors_from_selector(s) |
paul@92 | 273 | show(csel) |
paul@89 | 274 | |
paul@43 | 275 | l = s.materialise(dt, (1997, 12, 24, 0, 0, 0)) |
paul@47 | 276 | print len(l) == 17, 17, len(l) |
paul@47 | 277 | print l[0] == (1997, 9, 2, 9, 0, 0), (1997, 9, 2, 9, 0, 0), l[0] |
paul@47 | 278 | print l[-1] == (1997, 12, 23, 9, 0, 0), (1997, 12, 23, 9, 0, 0), l[-1] |
paul@41 | 279 | print |
paul@41 | 280 | |
paul@41 | 281 | qualifiers = [ |
paul@79 | 282 | ("WEEKLY", {"interval" : 1}) |
paul@79 | 283 | ] |
paul@79 | 284 | |
paul@89 | 285 | sel = make_selectors(qualifiers) |
paul@89 | 286 | show(sel) |
paul@79 | 287 | dt = (1997, 9, 2) |
paul@79 | 288 | l = get_datetime_structure(dt) |
paul@79 | 289 | show(l) |
paul@91 | 290 | csel = combine_datetime_with_selectors(dt, sel) |
paul@91 | 291 | show(csel) |
paul@79 | 292 | |
paul@89 | 293 | s = get_selector(dt, sel) |
paul@92 | 294 | csel = get_selectors_from_selector(s) |
paul@92 | 295 | show(csel) |
paul@89 | 296 | |
paul@79 | 297 | l = s.materialise(dt, (1997, 12, 24, 0, 0, 0)) |
paul@79 | 298 | print len(l) == 17, 17, len(l) |
paul@79 | 299 | print l[0] == (1997, 9, 2), (1997, 9, 2), l[0] |
paul@79 | 300 | print l[-1] == (1997, 12, 23), (1997, 12, 23), l[-1] |
paul@79 | 301 | print |
paul@79 | 302 | |
paul@79 | 303 | qualifiers = [ |
paul@41 | 304 | ("WEEKLY", {"interval" : 2}) |
paul@41 | 305 | ] |
paul@41 | 306 | |
paul@89 | 307 | sel = make_selectors(qualifiers) |
paul@89 | 308 | show(sel) |
paul@41 | 309 | dt = (1997, 9, 2, 9, 0, 0) |
paul@41 | 310 | l = get_datetime_structure(dt) |
paul@41 | 311 | show(l) |
paul@91 | 312 | csel = combine_datetime_with_selectors(dt, sel) |
paul@91 | 313 | show(csel) |
paul@41 | 314 | |
paul@89 | 315 | s = get_selector(dt, sel) |
paul@92 | 316 | csel = get_selectors_from_selector(s) |
paul@92 | 317 | show(csel) |
paul@89 | 318 | |
paul@43 | 319 | l = s.materialise(dt, (1998, 2, 20, 0, 0, 0)) |
paul@47 | 320 | print len(l) == 13, 13, len(l) |
paul@47 | 321 | print l[0] == (1997, 9, 2, 9, 0, 0), (1997, 9, 2, 9, 0, 0), l[0] |
paul@47 | 322 | print l[-1] == (1998, 2, 17, 9, 0, 0), (1998, 2, 17, 9, 0, 0), l[-1] |
paul@41 | 323 | print |
paul@41 | 324 | |
paul@41 | 325 | qualifiers = [ |
paul@41 | 326 | ("WEEKLY", {"interval" : 1}), |
paul@42 | 327 | ("BYDAY", {"values" : [(2, None), (4, None)]}) |
paul@41 | 328 | ] |
paul@41 | 329 | |
paul@89 | 330 | sel = make_selectors(qualifiers) |
paul@89 | 331 | show(sel) |
paul@41 | 332 | dt = (1997, 9, 2, 9, 0, 0) |
paul@41 | 333 | l = get_datetime_structure(dt) |
paul@41 | 334 | show(l) |
paul@91 | 335 | csel = combine_datetime_with_selectors(dt, sel) |
paul@91 | 336 | show(csel) |
paul@41 | 337 | |
paul@89 | 338 | s = get_selector(dt, sel) |
paul@92 | 339 | csel = get_selectors_from_selector(s) |
paul@92 | 340 | show(csel) |
paul@89 | 341 | |
paul@43 | 342 | l = s.materialise(dt, (1997, 10, 7, 9, 0, 0)) |
paul@47 | 343 | print len(l) == 10, 10, len(l) |
paul@47 | 344 | print l[0] == (1997, 9, 2, 9, 0, 0), (1997, 9, 2, 9, 0, 0), l[0] |
paul@47 | 345 | print l[-1] == (1997, 10, 2, 9, 0, 0), (1997, 10, 2, 9, 0, 0), l[-1] |
paul@41 | 346 | print |
paul@41 | 347 | |
paul@41 | 348 | qualifiers = [ |
paul@41 | 349 | ("WEEKLY", {"interval" : 1}), |
paul@79 | 350 | ("BYDAY", {"values" : [(2, None), (4, None)]}), |
paul@79 | 351 | ("COUNT", {"values" : [10]}) |
paul@41 | 352 | ] |
paul@41 | 353 | |
paul@89 | 354 | sel = make_selectors(qualifiers) |
paul@89 | 355 | show(sel) |
paul@41 | 356 | dt = (1997, 9, 2, 9, 0, 0) |
paul@41 | 357 | l = get_datetime_structure(dt) |
paul@41 | 358 | show(l) |
paul@91 | 359 | csel = combine_datetime_with_selectors(dt, sel) |
paul@91 | 360 | show(csel) |
paul@41 | 361 | |
paul@89 | 362 | s = get_selector(dt, sel) |
paul@92 | 363 | csel = get_selectors_from_selector(s) |
paul@92 | 364 | show(csel) |
paul@89 | 365 | |
paul@79 | 366 | l = s.materialise(dt, (1997, 12, 24, 0, 0, 0)) |
paul@47 | 367 | print len(l) == 10, 10, len(l) |
paul@47 | 368 | print l[0] == (1997, 9, 2, 9, 0, 0), (1997, 9, 2, 9, 0, 0), l[0] |
paul@47 | 369 | print l[-1] == (1997, 10, 2, 9, 0, 0), (1997, 10, 2, 9, 0, 0), l[-1] |
paul@41 | 370 | print |
paul@41 | 371 | |
paul@41 | 372 | qualifiers = [ |
paul@41 | 373 | ("WEEKLY", {"interval" : 2}), |
paul@42 | 374 | ("BYDAY", {"values" : [(1, None), (3, None), (5, None)]}) |
paul@41 | 375 | ] |
paul@41 | 376 | |
paul@89 | 377 | sel = make_selectors(qualifiers) |
paul@89 | 378 | show(sel) |
paul@41 | 379 | dt = (1997, 9, 1, 9, 0, 0) |
paul@41 | 380 | l = get_datetime_structure(dt) |
paul@41 | 381 | show(l) |
paul@91 | 382 | csel = combine_datetime_with_selectors(dt, sel) |
paul@91 | 383 | show(csel) |
paul@41 | 384 | |
paul@89 | 385 | s = get_selector(dt, sel) |
paul@92 | 386 | csel = get_selectors_from_selector(s) |
paul@92 | 387 | show(csel) |
paul@89 | 388 | |
paul@43 | 389 | l = s.materialise(dt, (1997, 12, 24, 0, 0, 0)) |
paul@47 | 390 | print len(l) == 25, 25, len(l) |
paul@47 | 391 | print l[0] == (1997, 9, 1, 9, 0, 0), (1997, 9, 1, 9, 0, 0), l[0] |
paul@47 | 392 | print l[-1] == (1997, 12, 22, 9, 0, 0), (1997, 12, 22, 9, 0, 0), l[-1] |
paul@41 | 393 | print |
paul@41 | 394 | |
paul@42 | 395 | qualifiers = [ |
paul@42 | 396 | ("WEEKLY", {"interval" : 2}), |
paul@79 | 397 | ("BYDAY", {"values" : [(2, None), (4, None)]}), |
paul@79 | 398 | ("COUNT", {"values" : [8]}) |
paul@42 | 399 | ] |
paul@42 | 400 | |
paul@89 | 401 | sel = make_selectors(qualifiers) |
paul@89 | 402 | show(sel) |
paul@42 | 403 | dt = (1997, 9, 2, 9, 0, 0) |
paul@42 | 404 | l = get_datetime_structure(dt) |
paul@42 | 405 | show(l) |
paul@91 | 406 | csel = combine_datetime_with_selectors(dt, sel) |
paul@91 | 407 | show(csel) |
paul@42 | 408 | |
paul@89 | 409 | s = get_selector(dt, sel) |
paul@92 | 410 | csel = get_selectors_from_selector(s) |
paul@92 | 411 | show(csel) |
paul@89 | 412 | |
paul@79 | 413 | l = s.materialise(dt, (1997, 12, 24, 0, 0, 0)) |
paul@47 | 414 | print len(l) == 8, 8, len(l) |
paul@47 | 415 | print l[0] == (1997, 9, 2, 9, 0, 0), (1997, 9, 2, 9, 0, 0), l[0] |
paul@47 | 416 | print l[-1] == (1997, 10, 16, 9, 0, 0), (1997, 10, 16, 9, 0, 0), l[-1] |
paul@42 | 417 | print |
paul@42 | 418 | |
paul@42 | 419 | qualifiers = [ |
paul@42 | 420 | ("MONTHLY", {"interval" : 1}), |
paul@79 | 421 | ("BYDAY", {"values" : [(5, 1)]}), |
paul@79 | 422 | ("COUNT", {"values" : [10]}) |
paul@42 | 423 | ] |
paul@42 | 424 | |
paul@89 | 425 | sel = make_selectors(qualifiers) |
paul@89 | 426 | show(sel) |
paul@42 | 427 | dt = (1997, 9, 5, 9, 0, 0) |
paul@42 | 428 | l = get_datetime_structure(dt) |
paul@42 | 429 | show(l) |
paul@91 | 430 | csel = combine_datetime_with_selectors(dt, sel) |
paul@91 | 431 | show(csel) |
paul@42 | 432 | |
paul@89 | 433 | s = get_selector(dt, sel) |
paul@92 | 434 | csel = get_selectors_from_selector(s) |
paul@92 | 435 | show(csel) |
paul@89 | 436 | |
paul@79 | 437 | l = s.materialise(dt, (1998, 12, 24, 0, 0, 0)) |
paul@47 | 438 | print len(l) == 10, 10, len(l) |
paul@47 | 439 | print l[0] == (1997, 9, 5, 9, 0, 0), (1997, 9, 5, 9, 0, 0), l[0] |
paul@47 | 440 | print l[-1] == (1998, 6, 5, 9, 0, 0), (1998, 6, 5, 9, 0, 0), l[-1] |
paul@42 | 441 | print |
paul@42 | 442 | |
paul@42 | 443 | qualifiers = [ |
paul@42 | 444 | ("MONTHLY", {"interval" : 1}), |
paul@47 | 445 | ("BYDAY", {"values" : [(5, 1)]}) |
paul@42 | 446 | ] |
paul@42 | 447 | |
paul@89 | 448 | sel = make_selectors(qualifiers) |
paul@89 | 449 | show(sel) |
paul@42 | 450 | dt = (1997, 9, 5, 9, 0, 0) |
paul@42 | 451 | l = get_datetime_structure(dt) |
paul@42 | 452 | show(l) |
paul@91 | 453 | csel = combine_datetime_with_selectors(dt, sel) |
paul@91 | 454 | show(csel) |
paul@42 | 455 | |
paul@89 | 456 | s = get_selector(dt, sel) |
paul@92 | 457 | csel = get_selectors_from_selector(s) |
paul@92 | 458 | show(csel) |
paul@89 | 459 | |
paul@43 | 460 | l = s.materialise(dt, (1997, 12, 24, 0, 0, 0)) |
paul@47 | 461 | print len(l) == 4, 4, len(l) |
paul@47 | 462 | print l[0] == (1997, 9, 5, 9, 0, 0), (1997, 9, 5, 9, 0, 0), l[0] |
paul@47 | 463 | print l[-1] == (1997, 12, 5, 9, 0, 0), (1997, 12, 5, 9, 0, 0), l[-1] |
paul@42 | 464 | print |
paul@42 | 465 | |
paul@42 | 466 | qualifiers = [ |
paul@42 | 467 | ("MONTHLY", {"interval" : 2}), |
paul@79 | 468 | ("BYDAY", {"values" : [(7, 1), (7, -1)]}), |
paul@79 | 469 | ("COUNT", {"values" : [10]}) |
paul@42 | 470 | ] |
paul@42 | 471 | |
paul@89 | 472 | sel = make_selectors(qualifiers) |
paul@89 | 473 | show(sel) |
paul@42 | 474 | dt = (1997, 9, 7, 9, 0, 0) |
paul@42 | 475 | l = get_datetime_structure(dt) |
paul@42 | 476 | show(l) |
paul@91 | 477 | csel = combine_datetime_with_selectors(dt, sel) |
paul@91 | 478 | show(csel) |
paul@42 | 479 | |
paul@89 | 480 | s = get_selector(dt, sel) |
paul@92 | 481 | csel = get_selectors_from_selector(s) |
paul@92 | 482 | show(csel) |
paul@89 | 483 | |
paul@79 | 484 | l = s.materialise(dt, (1998, 12, 24, 0, 0, 0)) |
paul@47 | 485 | print len(l) == 10, 10, len(l) |
paul@47 | 486 | print l[0] == (1997, 9, 7, 9, 0, 0), (1997, 9, 7, 9, 0, 0), l[0] |
paul@47 | 487 | print l[-1] == (1998, 5, 31, 9, 0, 0), (1998, 5, 31, 9, 0, 0), l[-1] |
paul@42 | 488 | print |
paul@42 | 489 | |
paul@42 | 490 | qualifiers = [ |
paul@42 | 491 | ("MONTHLY", {"interval" : 1}), |
paul@79 | 492 | ("BYDAY", {"values" : [(1, -2)]}), |
paul@79 | 493 | ("COUNT", {"values" : [6]}) |
paul@42 | 494 | ] |
paul@42 | 495 | |
paul@89 | 496 | sel = make_selectors(qualifiers) |
paul@89 | 497 | show(sel) |
paul@42 | 498 | dt = (1997, 9, 22, 9, 0, 0) |
paul@42 | 499 | l = get_datetime_structure(dt) |
paul@42 | 500 | show(l) |
paul@91 | 501 | csel = combine_datetime_with_selectors(dt, sel) |
paul@91 | 502 | show(csel) |
paul@42 | 503 | |
paul@89 | 504 | s = get_selector(dt, sel) |
paul@92 | 505 | csel = get_selectors_from_selector(s) |
paul@92 | 506 | show(csel) |
paul@89 | 507 | |
paul@79 | 508 | l = s.materialise(dt, (1998, 12, 24, 0, 0, 0)) |
paul@47 | 509 | print len(l) == 6, 6, len(l) |
paul@47 | 510 | print l[0] == (1997, 9, 22, 9, 0, 0), (1997, 9, 22, 9, 0, 0), l[0] |
paul@47 | 511 | print l[-1] == (1998, 2, 16, 9, 0, 0), (1998, 2, 16, 9, 0, 0), l[-1] |
paul@42 | 512 | print |
paul@42 | 513 | |
paul@43 | 514 | qualifiers = [ |
paul@43 | 515 | ("MONTHLY", {"interval" : 1}), |
paul@79 | 516 | ("BYMONTHDAY", {"values" : [-3]}), |
paul@79 | 517 | ("COUNT", {"values" : [6]}) |
paul@43 | 518 | ] |
paul@43 | 519 | |
paul@89 | 520 | sel = make_selectors(qualifiers) |
paul@89 | 521 | show(sel) |
paul@43 | 522 | dt = (1997, 9, 28, 9, 0, 0) |
paul@43 | 523 | l = get_datetime_structure(dt) |
paul@43 | 524 | show(l) |
paul@91 | 525 | csel = combine_datetime_with_selectors(dt, sel) |
paul@91 | 526 | show(csel) |
paul@43 | 527 | |
paul@89 | 528 | s = get_selector(dt, sel) |
paul@92 | 529 | csel = get_selectors_from_selector(s) |
paul@92 | 530 | show(csel) |
paul@89 | 531 | |
paul@79 | 532 | l = s.materialise(dt, (1998, 12, 24, 0, 0, 0)) |
paul@47 | 533 | print len(l) == 6, 6, len(l) |
paul@47 | 534 | print l[0] == (1997, 9, 28, 9, 0, 0), (1997, 9, 28, 9, 0, 0), l[0] |
paul@47 | 535 | print l[-1] == (1998, 2, 26, 9, 0, 0), (1998, 2, 26, 9, 0, 0), l[-1] |
paul@43 | 536 | print |
paul@43 | 537 | |
paul@43 | 538 | qualifiers = [ |
paul@43 | 539 | ("MONTHLY", {"interval" : 1}), |
paul@79 | 540 | ("BYMONTHDAY", {"values" : [15, 2]}), # test ordering |
paul@79 | 541 | ("COUNT", {"values" : [10]}) |
paul@43 | 542 | ] |
paul@43 | 543 | |
paul@89 | 544 | sel = make_selectors(qualifiers) |
paul@89 | 545 | show(sel) |
paul@43 | 546 | dt = (1997, 9, 2, 9, 0, 0) |
paul@43 | 547 | l = get_datetime_structure(dt) |
paul@43 | 548 | show(l) |
paul@91 | 549 | csel = combine_datetime_with_selectors(dt, sel) |
paul@91 | 550 | show(csel) |
paul@43 | 551 | |
paul@89 | 552 | s = get_selector(dt, sel) |
paul@92 | 553 | csel = get_selectors_from_selector(s) |
paul@92 | 554 | show(csel) |
paul@89 | 555 | |
paul@79 | 556 | l = s.materialise(dt, (1998, 12, 24, 0, 0, 0)) |
paul@47 | 557 | print len(l) == 10, 10, len(l) |
paul@47 | 558 | print l[0] == (1997, 9, 2, 9, 0, 0), (1997, 9, 2, 9, 0, 0), l[0] |
paul@47 | 559 | print l[-1] == (1998, 1, 15, 9, 0, 0), (1998, 1, 15, 9, 0, 0), l[-1] |
paul@43 | 560 | print |
paul@43 | 561 | |
paul@43 | 562 | qualifiers = [ |
paul@43 | 563 | ("MONTHLY", {"interval" : 1}), |
paul@79 | 564 | ("BYMONTHDAY", {"values" : [1, -1]}), |
paul@79 | 565 | ("COUNT", {"values" : [10]}) |
paul@43 | 566 | ] |
paul@43 | 567 | |
paul@89 | 568 | sel = make_selectors(qualifiers) |
paul@89 | 569 | show(sel) |
paul@43 | 570 | dt = (1997, 9, 30, 9, 0, 0) |
paul@43 | 571 | l = get_datetime_structure(dt) |
paul@43 | 572 | show(l) |
paul@91 | 573 | csel = combine_datetime_with_selectors(dt, sel) |
paul@91 | 574 | show(csel) |
paul@43 | 575 | |
paul@89 | 576 | s = get_selector(dt, sel) |
paul@92 | 577 | csel = get_selectors_from_selector(s) |
paul@92 | 578 | show(csel) |
paul@89 | 579 | |
paul@79 | 580 | l = s.materialise(dt, (1998, 12, 24, 0, 0, 0)) |
paul@47 | 581 | print len(l) == 10, 10, len(l) |
paul@47 | 582 | print l[0] == (1997, 9, 30, 9, 0, 0), (1997, 9, 30, 9, 0, 0), l[0] |
paul@47 | 583 | print l[-1] == (1998, 2, 1, 9, 0, 0), (1998, 2, 1, 9, 0, 0), l[-1] |
paul@43 | 584 | print |
paul@43 | 585 | |
paul@44 | 586 | qualifiers = [ |
paul@44 | 587 | ("MONTHLY", {"interval" : 18}), |
paul@79 | 588 | ("BYMONTHDAY", {"values" : [10, 11, 12, 13, 14, 15]}), |
paul@79 | 589 | ("COUNT", {"values" : [10]}) |
paul@44 | 590 | ] |
paul@44 | 591 | |
paul@89 | 592 | sel = make_selectors(qualifiers) |
paul@89 | 593 | show(sel) |
paul@44 | 594 | dt = (1997, 9, 10, 9, 0, 0) |
paul@44 | 595 | l = get_datetime_structure(dt) |
paul@44 | 596 | show(l) |
paul@91 | 597 | csel = combine_datetime_with_selectors(dt, sel) |
paul@91 | 598 | show(csel) |
paul@44 | 599 | |
paul@89 | 600 | s = get_selector(dt, sel) |
paul@92 | 601 | csel = get_selectors_from_selector(s) |
paul@92 | 602 | show(csel) |
paul@89 | 603 | |
paul@79 | 604 | l = s.materialise(dt, (1999, 12, 24, 0, 0, 0)) |
paul@47 | 605 | print len(l) == 10, 10, len(l) |
paul@47 | 606 | print l[0] == (1997, 9, 10, 9, 0, 0), (1997, 9, 10, 9, 0, 0), l[0] |
paul@47 | 607 | print l[-1] == (1999, 3, 13, 9, 0, 0), (1999, 3, 13, 9, 0, 0), l[-1] |
paul@44 | 608 | print |
paul@44 | 609 | |
paul@44 | 610 | qualifiers = [ |
paul@44 | 611 | ("MONTHLY", {"interval" : 2}), |
paul@44 | 612 | ("BYDAY", {"values" : [(2, None)]}) |
paul@44 | 613 | ] |
paul@44 | 614 | |
paul@89 | 615 | sel = make_selectors(qualifiers) |
paul@89 | 616 | show(sel) |
paul@44 | 617 | dt = (1997, 9, 2, 9, 0, 0) |
paul@44 | 618 | l = get_datetime_structure(dt) |
paul@44 | 619 | show(l) |
paul@91 | 620 | csel = combine_datetime_with_selectors(dt, sel) |
paul@91 | 621 | show(csel) |
paul@44 | 622 | |
paul@89 | 623 | s = get_selector(dt, sel) |
paul@92 | 624 | csel = get_selectors_from_selector(s) |
paul@92 | 625 | show(csel) |
paul@89 | 626 | |
paul@44 | 627 | l = s.materialise(dt, (1998, 4, 1, 0, 0, 0)) |
paul@47 | 628 | print len(l) == 18, 18, len(l) |
paul@47 | 629 | print l[0] == (1997, 9, 2, 9, 0, 0), (1997, 9, 2, 9, 0, 0), l[0] |
paul@47 | 630 | print l[-1] == (1998, 3, 31, 9, 0, 0), (1998, 3, 31, 9, 0, 0), l[-1] |
paul@44 | 631 | print |
paul@44 | 632 | |
paul@44 | 633 | qualifiers = [ |
paul@44 | 634 | ("YEARLY", {"interval" : 1}), |
paul@79 | 635 | ("BYMONTH", {"values" : [6, 7]}), |
paul@79 | 636 | ("COUNT", {"values" : [10]}) |
paul@44 | 637 | ] |
paul@44 | 638 | |
paul@89 | 639 | sel = make_selectors(qualifiers) |
paul@89 | 640 | show(sel) |
paul@44 | 641 | dt = (1997, 6, 10, 9, 0, 0) |
paul@44 | 642 | l = get_datetime_structure(dt) |
paul@44 | 643 | show(l) |
paul@91 | 644 | csel = combine_datetime_with_selectors(dt, sel) |
paul@91 | 645 | show(csel) |
paul@44 | 646 | |
paul@89 | 647 | s = get_selector(dt, sel) |
paul@92 | 648 | csel = get_selectors_from_selector(s) |
paul@92 | 649 | show(csel) |
paul@89 | 650 | |
paul@79 | 651 | l = s.materialise(dt, (2001, 12, 24, 0, 0, 0)) |
paul@47 | 652 | print len(l) == 10, 10, len(l) |
paul@47 | 653 | print l[0] == (1997, 6, 10, 9, 0, 0), (1997, 6, 10, 9, 0, 0), l[0] |
paul@47 | 654 | print l[-1] == (2001, 7, 10, 9, 0, 0), (2001, 7, 10, 9, 0, 0), l[-1] |
paul@44 | 655 | print |
paul@44 | 656 | |
paul@44 | 657 | qualifiers = [ |
paul@44 | 658 | ("YEARLY", {"interval" : 2}), |
paul@79 | 659 | ("BYMONTH", {"values" : [1, 2, 3]}), |
paul@79 | 660 | ("COUNT", {"values" : [10]}) |
paul@44 | 661 | ] |
paul@44 | 662 | |
paul@89 | 663 | sel = make_selectors(qualifiers) |
paul@89 | 664 | show(sel) |
paul@44 | 665 | dt = (1997, 3, 10, 9, 0, 0) |
paul@44 | 666 | l = get_datetime_structure(dt) |
paul@44 | 667 | show(l) |
paul@91 | 668 | csel = combine_datetime_with_selectors(dt, sel) |
paul@91 | 669 | show(csel) |
paul@44 | 670 | |
paul@89 | 671 | s = get_selector(dt, sel) |
paul@92 | 672 | csel = get_selectors_from_selector(s) |
paul@92 | 673 | show(csel) |
paul@89 | 674 | |
paul@79 | 675 | l = s.materialise(dt, (2003, 12, 24, 0, 0, 0)) |
paul@47 | 676 | print len(l) == 10, 10, len(l) |
paul@47 | 677 | print l[0] == (1997, 3, 10, 9, 0, 0), (1997, 3, 10, 9, 0, 0), l[0] |
paul@47 | 678 | print l[-1] == (2003, 3, 10, 9, 0, 0), (2003, 3, 10, 9, 0, 0), l[-1] |
paul@44 | 679 | print |
paul@44 | 680 | |
paul@45 | 681 | qualifiers = [ |
paul@45 | 682 | ("YEARLY", {"interval" : 3}), |
paul@79 | 683 | ("BYYEARDAY", {"values" : [1, 100, 200]}), |
paul@79 | 684 | ("COUNT", {"values" : [10]}) |
paul@45 | 685 | ] |
paul@45 | 686 | |
paul@89 | 687 | sel = make_selectors(qualifiers) |
paul@89 | 688 | show(sel) |
paul@45 | 689 | dt = (1997, 1, 1, 9, 0, 0) |
paul@45 | 690 | l = get_datetime_structure(dt) |
paul@45 | 691 | show(l) |
paul@91 | 692 | csel = combine_datetime_with_selectors(dt, sel) |
paul@91 | 693 | show(csel) |
paul@45 | 694 | |
paul@89 | 695 | s = get_selector(dt, sel) |
paul@92 | 696 | csel = get_selectors_from_selector(s) |
paul@92 | 697 | show(csel) |
paul@89 | 698 | |
paul@79 | 699 | l = s.materialise(dt, (2006, 2, 1, 0, 0, 0)) |
paul@47 | 700 | print len(l) == 10, 10, len(l) |
paul@47 | 701 | print l[0] == (1997, 1, 1, 9, 0, 0), (1997, 1, 1, 9, 0, 0), l[0] |
paul@47 | 702 | print l[-1] == (2006, 1, 1, 9, 0, 0), (2006, 1, 1, 9, 0, 0), l[-1] |
paul@47 | 703 | print |
paul@47 | 704 | |
paul@47 | 705 | qualifiers = [ |
paul@47 | 706 | ("YEARLY", {"interval" : 1}), |
paul@47 | 707 | ("BYDAY", {"values" : [(1, 20)]}) |
paul@47 | 708 | ] |
paul@47 | 709 | |
paul@89 | 710 | sel = make_selectors(qualifiers) |
paul@89 | 711 | show(sel) |
paul@47 | 712 | dt = (1997, 5, 19, 9, 0, 0) |
paul@47 | 713 | l = get_datetime_structure(dt) |
paul@47 | 714 | show(l) |
paul@91 | 715 | csel = combine_datetime_with_selectors(dt, sel) |
paul@91 | 716 | show(csel) |
paul@47 | 717 | |
paul@89 | 718 | s = get_selector(dt, sel) |
paul@92 | 719 | csel = get_selectors_from_selector(s) |
paul@92 | 720 | show(csel) |
paul@89 | 721 | |
paul@47 | 722 | l = s.materialise(dt, (1999, 12, 24, 0, 0, 0)) |
paul@47 | 723 | print len(l) == 3, 3, len(l) |
paul@47 | 724 | print l[0] == (1997, 5, 19, 9, 0, 0), (1997, 5, 19, 9, 0, 0), l[0] |
paul@47 | 725 | print l[-1] == (1999, 5, 17, 9, 0, 0), (1999, 5, 17, 9, 0, 0), l[-1] |
paul@45 | 726 | print |
paul@45 | 727 | |
paul@48 | 728 | """ |
paul@48 | 729 | qualifiers = [ |
paul@48 | 730 | ("YEARLY", {"interval" : 1}), |
paul@48 | 731 | ("BYWEEKNO", {"values" : [20]}), |
paul@48 | 732 | ("BYDAY", {"values" : [(1, None)]}) |
paul@48 | 733 | ] |
paul@48 | 734 | |
paul@89 | 735 | sel = make_selectors(qualifiers) |
paul@89 | 736 | show(sel) |
paul@48 | 737 | dt = (1997, 5, 12, 9, 0, 0) |
paul@48 | 738 | l = get_datetime_structure(dt) |
paul@48 | 739 | show(l) |
paul@91 | 740 | csel = combine_datetime_with_selectors(dt, sel) |
paul@91 | 741 | show(csel) |
paul@48 | 742 | |
paul@89 | 743 | s = get_selector(dt, sel) |
paul@92 | 744 | csel = get_selectors_from_selector(s) |
paul@92 | 745 | show(csel) |
paul@89 | 746 | |
paul@48 | 747 | l = s.materialise(dt, (1999, 12, 24, 0, 0, 0)) |
paul@48 | 748 | print len(l) == 3, 3, len(l) |
paul@48 | 749 | print l[0] == (1997, 5, 12, 9, 0, 0), (1997, 5, 12, 9, 0, 0), l[0] |
paul@48 | 750 | print l[-1] == (1999, 5, 17, 9, 0, 0), (1999, 5, 17, 9, 0, 0), l[-1] |
paul@48 | 751 | print |
paul@48 | 752 | """ |
paul@48 | 753 | |
paul@48 | 754 | qualifiers = [ |
paul@48 | 755 | ("YEARLY", {"interval" : 1}), |
paul@48 | 756 | ("BYMONTH", {"values" : [3]}), |
paul@48 | 757 | ("BYDAY", {"values" : [(4, None)]}) |
paul@48 | 758 | ] |
paul@48 | 759 | |
paul@89 | 760 | sel = make_selectors(qualifiers) |
paul@89 | 761 | show(sel) |
paul@48 | 762 | dt = (1997, 3, 13, 9, 0, 0) |
paul@48 | 763 | l = get_datetime_structure(dt) |
paul@48 | 764 | show(l) |
paul@91 | 765 | csel = combine_datetime_with_selectors(dt, sel) |
paul@91 | 766 | show(csel) |
paul@48 | 767 | |
paul@89 | 768 | s = get_selector(dt, sel) |
paul@92 | 769 | csel = get_selectors_from_selector(s) |
paul@92 | 770 | show(csel) |
paul@89 | 771 | |
paul@48 | 772 | l = s.materialise(dt, (1999, 12, 24, 0, 0, 0)) |
paul@48 | 773 | print len(l) == 11, 11, len(l) |
paul@48 | 774 | print l[0] == (1997, 3, 13, 9, 0, 0), (1997, 3, 13, 9, 0, 0), l[0] |
paul@48 | 775 | print l[-1] == (1999, 3, 25, 9, 0, 0), (1999, 3, 25, 9, 0, 0), l[-1] |
paul@48 | 776 | print |
paul@48 | 777 | |
paul@48 | 778 | qualifiers = [ |
paul@48 | 779 | ("YEARLY", {"interval" : 1}), |
paul@48 | 780 | ("BYMONTH", {"values" : [6, 7, 8]}), |
paul@48 | 781 | ("BYDAY", {"values" : [(4, None)]}) |
paul@48 | 782 | ] |
paul@48 | 783 | |
paul@89 | 784 | sel = make_selectors(qualifiers) |
paul@89 | 785 | show(sel) |
paul@48 | 786 | dt = (1997, 6, 5, 9, 0, 0) |
paul@48 | 787 | l = get_datetime_structure(dt) |
paul@48 | 788 | show(l) |
paul@91 | 789 | csel = combine_datetime_with_selectors(dt, sel) |
paul@91 | 790 | show(csel) |
paul@48 | 791 | |
paul@89 | 792 | s = get_selector(dt, sel) |
paul@92 | 793 | csel = get_selectors_from_selector(s) |
paul@92 | 794 | show(csel) |
paul@89 | 795 | |
paul@48 | 796 | l = s.materialise(dt, (1999, 12, 24, 0, 0, 0)) |
paul@48 | 797 | print len(l) == 39, 39, len(l) |
paul@48 | 798 | print l[0] == (1997, 6, 5, 9, 0, 0), (1997, 6, 5, 9, 0, 0), l[0] |
paul@48 | 799 | print l[-1] == (1999, 8, 26, 9, 0, 0), (1999, 8, 26, 9, 0, 0), l[-1] |
paul@48 | 800 | print |
paul@48 | 801 | |
paul@48 | 802 | qualifiers = [ |
paul@48 | 803 | ("MONTHLY", {"interval" : 1}), |
paul@48 | 804 | ("BYMONTHDAY", {"values" : [13]}), |
paul@48 | 805 | ("BYDAY", {"values" : [(5, None)]}) |
paul@48 | 806 | ] |
paul@48 | 807 | |
paul@89 | 808 | sel = make_selectors(qualifiers) |
paul@89 | 809 | show(sel) |
paul@48 | 810 | dt = (1997, 9, 2, 9, 0, 0) |
paul@48 | 811 | l = get_datetime_structure(dt) |
paul@48 | 812 | show(l) |
paul@91 | 813 | csel = combine_datetime_with_selectors(dt, sel) |
paul@91 | 814 | show(csel) |
paul@48 | 815 | |
paul@89 | 816 | s = get_selector(dt, sel) |
paul@92 | 817 | csel = get_selectors_from_selector(s) |
paul@92 | 818 | show(csel) |
paul@89 | 819 | |
paul@48 | 820 | l = s.materialise(dt, (2000, 12, 24, 0, 0, 0)) |
paul@89 | 821 | print len(l) == 6, 6, len(l) |
paul@89 | 822 | print l[1] == (1998, 2, 13, 9, 0, 0), (1998, 2, 13, 9, 0, 0), l[1] |
paul@48 | 823 | print l[-1] == (2000, 10, 13, 9, 0, 0), (2000, 10, 13, 9, 0, 0), l[-1] |
paul@48 | 824 | print |
paul@48 | 825 | |
paul@48 | 826 | qualifiers = [ |
paul@48 | 827 | ("MONTHLY", {"interval" : 1}), |
paul@48 | 828 | ("BYMONTHDAY", {"values" : [7, 8, 9, 10, 11, 12, 13]}), |
paul@48 | 829 | ("BYDAY", {"values" : [(6, None)]}) |
paul@48 | 830 | ] |
paul@48 | 831 | |
paul@89 | 832 | sel = make_selectors(qualifiers) |
paul@89 | 833 | show(sel) |
paul@48 | 834 | dt = (1997, 9, 13, 9, 0, 0) |
paul@48 | 835 | l = get_datetime_structure(dt) |
paul@48 | 836 | show(l) |
paul@91 | 837 | csel = combine_datetime_with_selectors(dt, sel) |
paul@91 | 838 | show(csel) |
paul@48 | 839 | |
paul@89 | 840 | s = get_selector(dt, sel) |
paul@92 | 841 | csel = get_selectors_from_selector(s) |
paul@92 | 842 | show(csel) |
paul@89 | 843 | |
paul@48 | 844 | l = s.materialise(dt, (1998, 6, 30, 0, 0, 0)) |
paul@48 | 845 | print len(l) == 10, 10, len(l) |
paul@48 | 846 | print l[0] == (1997, 9, 13, 9, 0, 0), (1997, 9, 13, 9, 0, 0), l[0] |
paul@48 | 847 | print l[-1] == (1998, 6, 13, 9, 0, 0), (1998, 6, 13, 9, 0, 0), l[-1] |
paul@48 | 848 | print |
paul@48 | 849 | |
paul@48 | 850 | qualifiers = [ |
paul@48 | 851 | ("YEARLY", {"interval" : 4}), |
paul@48 | 852 | ("BYMONTH", {"values" : [11]}), |
paul@48 | 853 | ("BYMONTHDAY", {"values" : [2, 3, 4, 5, 6, 7, 8]}), |
paul@48 | 854 | ("BYDAY", {"values" : [(2, None)]}) |
paul@48 | 855 | ] |
paul@48 | 856 | |
paul@89 | 857 | sel = make_selectors(qualifiers) |
paul@89 | 858 | show(sel) |
paul@48 | 859 | dt = (1996, 11, 5, 9, 0, 0) |
paul@48 | 860 | l = get_datetime_structure(dt) |
paul@48 | 861 | show(l) |
paul@91 | 862 | csel = combine_datetime_with_selectors(dt, sel) |
paul@91 | 863 | show(csel) |
paul@48 | 864 | |
paul@89 | 865 | s = get_selector(dt, sel) |
paul@92 | 866 | csel = get_selectors_from_selector(s) |
paul@92 | 867 | show(csel) |
paul@89 | 868 | |
paul@48 | 869 | l = s.materialise(dt, (2004, 12, 24, 0, 0, 0)) |
paul@48 | 870 | print len(l) == 3, 3, len(l) |
paul@48 | 871 | print l[0] == (1996, 11, 5, 9, 0, 0), (1996, 11, 5, 9, 0, 0), l[0] |
paul@48 | 872 | print l[-1] == (2004, 11, 2, 9, 0, 0), (2004, 11, 2, 9, 0, 0), l[-1] |
paul@48 | 873 | print |
paul@48 | 874 | |
paul@53 | 875 | qualifiers = [ |
paul@53 | 876 | ("MONTHLY", {"interval" : 1}), |
paul@79 | 877 | ("BYDAY", {"values" : [(2, None), (3, None), (4, None)]}), |
paul@79 | 878 | ("BYSETPOS", {"values" : [3]}), |
paul@79 | 879 | ("COUNT", {"values" : [3]}) |
paul@53 | 880 | ] |
paul@53 | 881 | |
paul@89 | 882 | sel = make_selectors(qualifiers) |
paul@89 | 883 | show(sel) |
paul@53 | 884 | dt = (1997, 9, 4, 9, 0, 0) |
paul@53 | 885 | l = get_datetime_structure(dt) |
paul@53 | 886 | show(l) |
paul@91 | 887 | csel = combine_datetime_with_selectors(dt, sel) |
paul@91 | 888 | show(csel) |
paul@53 | 889 | |
paul@89 | 890 | s = get_selector(dt, sel) |
paul@92 | 891 | csel = get_selectors_from_selector(s) |
paul@92 | 892 | show(csel) |
paul@89 | 893 | |
paul@79 | 894 | l = s.materialise(dt, (1997, 12, 24, 0, 0, 0)) |
paul@53 | 895 | print len(l) == 3, 3, len(l) |
paul@53 | 896 | print l[0] == (1997, 9, 4, 9, 0, 0), (1997, 9, 4, 9, 0, 0), l[0] |
paul@53 | 897 | print l[-1] == (1997, 11, 6, 9, 0, 0), (1997, 11, 6, 9, 0, 0), l[-1] |
paul@53 | 898 | print |
paul@53 | 899 | |
paul@53 | 900 | l2 = l |
paul@53 | 901 | |
paul@53 | 902 | qualifiers = [ |
paul@53 | 903 | ("MONTHLY", {"interval" : 1}), |
paul@79 | 904 | ("BYDAY", {"values" : [(1, None), (2, None), (3, None), (4, None), (5, None)]}), |
paul@79 | 905 | ("BYSETPOS", {"values" : [-2]}) |
paul@53 | 906 | ] |
paul@53 | 907 | |
paul@89 | 908 | sel = make_selectors(qualifiers) |
paul@89 | 909 | show(sel) |
paul@53 | 910 | dt = (1997, 9, 29, 9, 0, 0) |
paul@53 | 911 | l = get_datetime_structure(dt) |
paul@53 | 912 | show(l) |
paul@91 | 913 | csel = combine_datetime_with_selectors(dt, sel) |
paul@91 | 914 | show(csel) |
paul@53 | 915 | |
paul@89 | 916 | s = get_selector(dt, sel) |
paul@92 | 917 | csel = get_selectors_from_selector(s) |
paul@92 | 918 | show(csel) |
paul@89 | 919 | |
paul@79 | 920 | l = s.materialise(dt, (1998, 4, 1, 0, 0, 0)) |
paul@53 | 921 | print len(l) == 7, 7, len(l) |
paul@53 | 922 | print l[0] == (1997, 9, 29, 9, 0, 0), (1997, 9, 29, 9, 0, 0), l[0] |
paul@53 | 923 | print l[-1] == (1998, 3, 30, 9, 0, 0), (1998, 3, 30, 9, 0, 0), l[-1] |
paul@53 | 924 | print |
paul@53 | 925 | |
paul@89 | 926 | qualifiers = get_qualifiers(["BYMONTHDAY=5", "FREQ=HOURLY", "INTERVAL=12"]) |
paul@75 | 927 | |
paul@89 | 928 | sel = make_selectors(qualifiers) |
paul@89 | 929 | show(sel) |
paul@75 | 930 | dt = (2017, 6, 13) |
paul@75 | 931 | l = get_datetime_structure(dt) |
paul@75 | 932 | show(l) |
paul@91 | 933 | csel = combine_datetime_with_selectors(dt, sel) |
paul@91 | 934 | show(csel) |
paul@75 | 935 | |
paul@89 | 936 | s = get_selector(dt, sel) |
paul@92 | 937 | csel = get_selectors_from_selector(s) |
paul@92 | 938 | show(csel) |
paul@89 | 939 | |
paul@75 | 940 | l = s.materialise(dt, (2019, 1, 1)) |
paul@89 | 941 | print len(l) == 37, 37, len(l) |
paul@89 | 942 | print l[1] == (2017, 7, 5, 0), (2017, 7, 5, 0), l[1] |
paul@75 | 943 | print l[-1] == (2018, 12, 5, 12), (2018, 12, 5, 12), l[-1] |
paul@75 | 944 | |
paul@75 | 945 | qualifiers = get_qualifiers(["FREQ=DAILY", "BYMONTH=1"]) |
paul@75 | 946 | |
paul@89 | 947 | sel = make_selectors(qualifiers) |
paul@89 | 948 | show(sel) |
paul@75 | 949 | dt = (2017, 6, 13) |
paul@75 | 950 | l = get_datetime_structure(dt) |
paul@75 | 951 | show(l) |
paul@91 | 952 | csel = combine_datetime_with_selectors(dt, sel) |
paul@91 | 953 | show(csel) |
paul@75 | 954 | |
paul@89 | 955 | s = get_selector(dt, sel) |
paul@92 | 956 | csel = get_selectors_from_selector(s) |
paul@92 | 957 | show(csel) |
paul@89 | 958 | |
paul@75 | 959 | l = s.materialise(dt, (2019, 1, 1)) |
paul@89 | 960 | print len(l) == 32, 32, len(l) |
paul@89 | 961 | print l[1] == (2018, 1, 1), (2018, 1, 1), l[1] |
paul@75 | 962 | print l[-1] == (2018, 1, 31), (2018, 1, 31), l[-1] |
paul@75 | 963 | |
paul@77 | 964 | qualifiers = get_qualifiers(["FREQ=MONTHLY", "BYDAY=WE,1FR,2MO,2FR"]) |
paul@77 | 965 | |
paul@89 | 966 | sel = make_selectors(qualifiers) |
paul@89 | 967 | show(sel) |
paul@77 | 968 | dt = (2017, 10, 15) |
paul@77 | 969 | l = get_datetime_structure(dt) |
paul@77 | 970 | show(l) |
paul@91 | 971 | csel = combine_datetime_with_selectors(dt, sel) |
paul@91 | 972 | show(csel) |
paul@77 | 973 | |
paul@89 | 974 | s = get_selector(dt, sel) |
paul@92 | 975 | csel = get_selectors_from_selector(s) |
paul@92 | 976 | show(csel) |
paul@89 | 977 | |
paul@77 | 978 | l = s.materialise(dt, (2018, 1, 1)) |
paul@89 | 979 | print len(l) == 18, 18, len(l) |
paul@89 | 980 | print l[1] == (2017, 10, 18), (2017, 10, 18), l[1] |
paul@77 | 981 | print l[-1] == (2017, 12, 27), (2017, 12, 27), l[-1] |
paul@77 | 982 | |
paul@41 | 983 | # vim: tabstop=4 expandtab shiftwidth=4 |