1 #!/usr/bin/env python 2 3 from vRecurrence import * 4 5 def show(l): 6 for x in l: 7 print x 8 print 9 10 qualifiers = [ 11 ("YEARLY", {"interval" : 1}) 12 ] 13 14 l = order_qualifiers(qualifiers) 15 show(l) 16 dt = (1997, 11, 2) 17 l = get_datetime_structure(dt) 18 show(l) 19 l = combine_datetime_with_qualifiers(dt, qualifiers) 20 show(l) 21 22 s = process(l) 23 l = s.materialise((2003, 12, 24)) 24 print len(l) == 7, len(l) 25 print l[0] == (1997, 11, 2), l[0] 26 print l[-1] == (2003, 11, 2), l[-1] 27 print 28 29 qualifiers = [ 30 ("YEARLY", {"interval" : 2}), 31 ("BYMONTH", {"values" : [1]}), 32 ("BYDAY", {"values" : [(6, None)]}), 33 ("BYHOUR", {"values" : [8, 9]}), 34 ("BYMINUTE", {"values" : [30]}) 35 ] 36 37 l = order_qualifiers(qualifiers) 38 show(l) 39 dt = (1997, 1, 5, 8, 30, 0) 40 l = get_datetime_structure(dt) 41 show(l) 42 l = combine_datetime_with_qualifiers(dt, qualifiers) 43 show(l) 44 45 s = process(l) 46 l = s.materialise((2003, 12, 24, 0, 0, 0)) 47 print len(l) == 34, len(l) 48 print l[0] == (1997, 1, 4, 8, 30, 0), l[0] 49 print l[-1] == (2003, 1, 25, 9, 30, 0), l[-1] 50 print 51 52 qualifiers = [ 53 ("DAILY", {"interval" : 1}) 54 ] 55 56 l = order_qualifiers(qualifiers) 57 show(l) 58 dt = (1997, 9, 2, 9, 0, 0) 59 l = get_datetime_structure(dt) 60 show(l) 61 l = combine_datetime_with_qualifiers(dt, qualifiers) 62 show(l) 63 64 s = process(l) 65 l = s.materialise((1997, 12, 24), 10) 66 print len(l) == 10, len(l) 67 print l[0] == (1997, 9, 2, 9, 0, 0), l[0] 68 print l[-1] == (1997, 9, 11, 9, 0, 0), l[-1] 69 print 70 71 qualifiers = [ 72 ("DAILY", {"interval" : 1}) 73 ] 74 75 l = order_qualifiers(qualifiers) 76 show(l) 77 dt = (1997, 9, 2, 9, 0, 0) 78 l = get_datetime_structure(dt) 79 show(l) 80 l = combine_datetime_with_qualifiers(dt, qualifiers) 81 show(l) 82 83 s = process(l) 84 l = s.materialise((1997, 12, 24, 0, 0, 0)) 85 print len(l) == 113, len(l) 86 print l[0] == (1997, 9, 2, 9, 0, 0), l[0] 87 print l[-1] == (1997, 12, 23, 9, 0, 0), l[-1] 88 print 89 90 qualifiers = [ 91 ("DAILY", {"interval" : 2}) 92 ] 93 94 l = order_qualifiers(qualifiers) 95 show(l) 96 dt = (1997, 9, 2, 9, 0, 0) 97 l = get_datetime_structure(dt) 98 show(l) 99 l = combine_datetime_with_qualifiers(dt, qualifiers) 100 show(l) 101 102 s = process(l) 103 l = s.materialise((1997, 12, 24, 0, 0, 0)) 104 print len(l) == 57, len(l) 105 print l[0] == (1997, 9, 2, 9, 0, 0), l[0] 106 print l[-1] == (1997, 12, 23, 9, 0, 0), l[-1] 107 print 108 109 qualifiers = [ 110 ("WEEKLY", {"interval" : 1}) 111 ] 112 113 l = order_qualifiers(qualifiers) 114 show(l) 115 dt = (1997, 9, 2, 9, 0, 0) 116 l = get_datetime_structure(dt) 117 show(l) 118 l = combine_datetime_with_qualifiers(dt, qualifiers) 119 show(l) 120 121 s = process(l) 122 l = s.materialise((1997, 12, 24, 0, 0, 0)) 123 print len(l) == 17, len(l) 124 print l[0] == (1997, 9, 2, 9, 0, 0), l[0] 125 print l[-1] == (1997, 12, 23, 9, 0, 0), l[-1] 126 print 127 128 qualifiers = [ 129 ("DAILY", {"interval" : 10}) 130 ] 131 132 l = order_qualifiers(qualifiers) 133 show(l) 134 dt = (1997, 9, 2, 9, 0, 0) 135 l = get_datetime_structure(dt) 136 show(l) 137 l = combine_datetime_with_qualifiers(dt, qualifiers) 138 show(l) 139 140 s = process(l) 141 l = s.materialise((1997, 12, 24, 0, 0, 0), 5) 142 print len(l) == 5, len(l) 143 print l[0] == (1997, 9, 2, 9, 0, 0), l[0] 144 print l[-1] == (1997, 10, 12, 9, 0, 0), l[-1] 145 print 146 147 qualifiers = [ 148 ("YEARLY", {"interval" : 1}), 149 ("BYMONTH", {"values" : [1]}), 150 ("BYDAY", {"values" : [(1, None), (2, None), (3, None), (4, None), (5, None), (6, None), (7, None)]}) 151 ] 152 153 l = order_qualifiers(qualifiers) 154 show(l) 155 dt = (1998, 1, 1, 9, 0, 0) 156 l = get_datetime_structure(dt) 157 show(l) 158 l = combine_datetime_with_qualifiers(dt, qualifiers) 159 show(l) 160 161 s = process(l) 162 l = s.materialise((2000, 1, 31, 14, 0, 0)) 163 print len(l) == 93, len(l) 164 print l[0] == (1998, 1, 1, 9, 0, 0), l[0] 165 print l[-1] == (2000, 1, 31, 9, 0, 0), l[-1] 166 print 167 168 qualifiers = [ 169 ("DAILY", {"interval" : 1}), 170 ("BYMONTH", {"values" : [1]}) 171 ] 172 173 l = order_qualifiers(qualifiers) 174 show(l) 175 dt = (1998, 1, 1, 9, 0, 0) 176 l = get_datetime_structure(dt) 177 show(l) 178 l = combine_datetime_with_qualifiers(dt, qualifiers) 179 show(l) 180 181 s = process(l) 182 l = s.materialise((2000, 1, 31, 14, 0, 0)) 183 print len(l) == 93, len(l) 184 print l[0] == (1998, 1, 1, 9, 0, 0), l[0] 185 print l[-1] == (2000, 1, 31, 9, 0, 0), l[-1] 186 print 187 188 qualifiers = [ 189 ("WEEKLY", {"interval" : 1}) 190 ] 191 192 l = order_qualifiers(qualifiers) 193 show(l) 194 dt = (1997, 9, 2, 9, 0, 0) 195 l = get_datetime_structure(dt) 196 show(l) 197 l = combine_datetime_with_qualifiers(dt, qualifiers) 198 show(l) 199 200 s = process(l) 201 l = s.materialise((1997, 12, 24, 0, 0, 0), 10) 202 print len(l) == 10, len(l) 203 print l[0] == (1997, 9, 2, 9, 0, 0), l[0] 204 print l[-1] == (1997, 11, 4, 9, 0, 0), l[-1] 205 print 206 207 qualifiers = [ 208 ("WEEKLY", {"interval" : 1}) 209 ] 210 211 l = order_qualifiers(qualifiers) 212 show(l) 213 dt = (1997, 9, 2, 9, 0, 0) 214 l = get_datetime_structure(dt) 215 show(l) 216 l = combine_datetime_with_qualifiers(dt, qualifiers) 217 show(l) 218 219 s = process(l) 220 l = s.materialise((1997, 12, 24, 0, 0, 0)) 221 print len(l) == 17, len(l) 222 print l[0] == (1997, 9, 2, 9, 0, 0), l[0] 223 print l[-1] == (1997, 12, 23, 9, 0, 0), l[-1] 224 print 225 226 qualifiers = [ 227 ("WEEKLY", {"interval" : 2}) 228 ] 229 230 l = order_qualifiers(qualifiers) 231 show(l) 232 dt = (1997, 9, 2, 9, 0, 0) 233 l = get_datetime_structure(dt) 234 show(l) 235 l = combine_datetime_with_qualifiers(dt, qualifiers) 236 show(l) 237 238 s = process(l) 239 l = s.materialise((1998, 2, 20, 0, 0, 0)) 240 print len(l) == 13, len(l) 241 print l[0] == (1997, 9, 2, 9, 0, 0), l[0] 242 print l[-1] == (1998, 2, 17, 9, 0, 0), l[-1] 243 print 244 245 qualifiers = [ 246 ("WEEKLY", {"interval" : 1}), 247 ("BYDAY", {"values" : [(2, None), (4, None)]}) 248 ] 249 250 l = order_qualifiers(qualifiers) 251 show(l) 252 dt = (1997, 9, 2, 9, 0, 0) 253 l = get_datetime_structure(dt) 254 show(l) 255 l = combine_datetime_with_qualifiers(dt, qualifiers) 256 show(l) 257 258 s = process(l) 259 l = s.materialise((1997, 10, 7, 9, 0, 0)) 260 print len(l) == 10, len(l) 261 print l[0] == (1997, 9, 2, 9, 0, 0), l[0] 262 print l[-1] == (1997, 10, 2, 9, 0, 0), l[-1] 263 print 264 265 qualifiers = [ 266 ("WEEKLY", {"interval" : 1}), 267 ("BYDAY", {"values" : [(2, None), (4, None)]}) 268 ] 269 270 l = order_qualifiers(qualifiers) 271 show(l) 272 dt = (1997, 9, 2, 9, 0, 0) 273 l = get_datetime_structure(dt) 274 show(l) 275 l = combine_datetime_with_qualifiers(dt, qualifiers) 276 show(l) 277 278 s = process(l) 279 l = s.materialise((1997, 12, 24, 0, 0, 0), 10) 280 print len(l) == 10, len(l) 281 print l[0] == (1997, 9, 2, 9, 0, 0), l[0] 282 print l[-1] == (1997, 10, 2, 9, 0, 0), l[-1] 283 print 284 285 qualifiers = [ 286 ("WEEKLY", {"interval" : 2}), 287 ("BYDAY", {"values" : [(1, None), (3, None), (5, None)]}) 288 ] 289 290 l = order_qualifiers(qualifiers) 291 show(l) 292 dt = (1997, 9, 1, 9, 0, 0) 293 l = get_datetime_structure(dt) 294 show(l) 295 l = combine_datetime_with_qualifiers(dt, qualifiers) 296 show(l) 297 298 s = process(l) 299 l = s.materialise((1997, 12, 24, 0, 0, 0)) 300 print len(l) == 25, len(l) 301 print l[0] == (1997, 9, 1, 9, 0, 0), l[0] 302 print l[-1] == (1997, 12, 22, 9, 0, 0), l[-1] 303 print 304 305 qualifiers = [ 306 ("WEEKLY", {"interval" : 2}), 307 ("BYDAY", {"values" : [(2, None), (4, None)]}) 308 ] 309 310 l = order_qualifiers(qualifiers) 311 show(l) 312 dt = (1997, 9, 2, 9, 0, 0) 313 l = get_datetime_structure(dt) 314 show(l) 315 l = combine_datetime_with_qualifiers(dt, qualifiers) 316 show(l) 317 318 s = process(l) 319 l = s.materialise((1997, 12, 24, 0, 0, 0), 8) 320 print len(l) == 8, len(l) 321 print l[0] == (1997, 9, 2, 9, 0, 0), l[0] 322 print l[-1] == (1997, 10, 16, 9, 0, 0), l[-1] 323 print 324 325 qualifiers = [ 326 ("MONTHLY", {"interval" : 1}), 327 ("BYDAY", {"values" : [(5, 0)]}) 328 ] 329 330 l = order_qualifiers(qualifiers) 331 show(l) 332 dt = (1997, 9, 5, 9, 0, 0) 333 l = get_datetime_structure(dt) 334 show(l) 335 l = combine_datetime_with_qualifiers(dt, qualifiers) 336 show(l) 337 338 s = process(l) 339 l = s.materialise((1998, 12, 24, 0, 0, 0), 10) 340 print len(l) == 10, len(l) 341 print l[0] == (1997, 9, 5, 9, 0, 0), l[0] 342 print l[-1] == (1998, 6, 5, 9, 0, 0), l[-1] 343 print 344 345 qualifiers = [ 346 ("MONTHLY", {"interval" : 1}), 347 ("BYDAY", {"values" : [(5, 0)]}) 348 ] 349 350 l = order_qualifiers(qualifiers) 351 show(l) 352 dt = (1997, 9, 5, 9, 0, 0) 353 l = get_datetime_structure(dt) 354 show(l) 355 l = combine_datetime_with_qualifiers(dt, qualifiers) 356 show(l) 357 358 s = process(l) 359 l = s.materialise((1997, 12, 24, 0, 0, 0)) 360 print len(l) == 4, len(l) 361 print l[0] == (1997, 9, 5, 9, 0, 0), l[0] 362 print l[-1] == (1997, 12, 5, 9, 0, 0), l[-1] 363 print 364 365 qualifiers = [ 366 ("MONTHLY", {"interval" : 2}), 367 ("BYDAY", {"values" : [(7, 0), (7, -1)]}) 368 ] 369 370 l = order_qualifiers(qualifiers) 371 show(l) 372 dt = (1997, 9, 7, 9, 0, 0) 373 l = get_datetime_structure(dt) 374 show(l) 375 l = combine_datetime_with_qualifiers(dt, qualifiers) 376 show(l) 377 378 s = process(l) 379 l = s.materialise((1998, 12, 24, 0, 0, 0), 10) 380 print len(l) == 10, len(l) 381 print l[0] == (1997, 9, 7, 9, 0, 0), l[0] 382 print l[-1] == (1998, 5, 31, 9, 0, 0), l[-1] 383 print 384 385 qualifiers = [ 386 ("MONTHLY", {"interval" : 1}), 387 ("BYDAY", {"values" : [(1, -2)]}) 388 ] 389 390 l = order_qualifiers(qualifiers) 391 show(l) 392 dt = (1997, 9, 22, 9, 0, 0) 393 l = get_datetime_structure(dt) 394 show(l) 395 l = combine_datetime_with_qualifiers(dt, qualifiers) 396 show(l) 397 398 s = process(l) 399 l = s.materialise((1998, 12, 24, 0, 0, 0), 6) 400 print len(l) == 6, len(l) 401 print l[0] == (1997, 9, 22, 9, 0, 0), l[0] 402 print l[-1] == (1998, 2, 16, 9, 0, 0), l[-1] 403 print 404 405 # vim: tabstop=4 expandtab shiftwidth=4