blob: 80fee2599b94f030eec4df9804f26db9d2971f69 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
;;; Commentary:
;; Tests that event-clamping (checking how long part of an event
;; overlaps another time span) works.
;;; Code:
(define-module (test vcomponent-datetime)
:use-module (srfi srfi-64)
:use-module (srfi srfi-88)
:use-module ((datetime) :select (date time datetime))
:use-module ((vcomponent datetime) :select (event-length/clamped))
:use-module ((vcomponent create) :select (vevent)))
(define ev
(vevent
dtstart: (datetime year: 2020 month: 03 day: 29 hour: 17 minute: 00 second: 00)
dtend: (datetime year: 2020 month: 04 day: 01 hour: 10 minute: 00 second: 00)))
;; |-----------------| test interval
;; |----------| event interval
(test-equal
"Correct clamping"
(datetime time: (time hour: 7)) ; 2020-03-29T17:00 - 2020-03-30T00:00
(event-length/clamped
(date year: 2020 month: 03 day: 23) ; a time way before the start of the event
(date year: 2020 month: 03 day: 29) ; a time slightly after the end of the event
ev))
(define utc-ev
(vevent
dtstart: (datetime year: 2020 month: 03 day: 29 hour: 15 minute: 00 second: 00 tz: "UTC")
dtend: (datetime year: 2020 month: 04 day: 01 hour: 08 minute: 00 second: 00 tz: "UTC")))
(test-equal
"Correct clamping UTC"
(datetime time: (time hour: 7))
(event-length/clamped
(date year: 2020 month: 03 day: 23)
(date year: 2020 month: 03 day: 29)
ev))
'((vcomponent datetime))
|