;;; 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) :use-module (hnh util lens) :use-module (vcomponent datetime) :use-module ((vcomponent create) :select (vevent))) (test-group "overlapping?" (test-assert "date, date" (overlapping? (vevent summary: "A" dtstart: (date year: 2020 month: jan day: 1) dtend: (date year: 2022 month: dec day: 31)) (vevent summary: "B" dtstart: (datetime year: 2020 month: apr day: 1 hour: 10) dtend: (datetime year: 2020 month: apr day: 1 hour: 12)))) ;; (test-assert "date, datetime") ;; (test-assert "datetime, date") ;; (test-assert "datetime, datetime") ) (test-group "event-contains?" (let* ((dt (datetime year: 2020 month: jan day: 1 hour: 10)) (ev (vevent dtstart: dt dtend: (datetime+ dt (datetime hour: 5))))) (test-assert (event-contains? ev dt)) (test-assert (not (event-contains? ev (set dt datetime-date day 10)))))) (test-group "event-zero-length?" (test-assert (not (event-zero-length? (vevent dtstart: (date))))) (test-assert (event-zero-length? (vevent dtstart: (datetime)))) (test-assert (not (event-zero-length? (vevent dtstart: (datetime) dtend: (datetime)))))) ;; (test-group "ev-timevtimezone") '((vcomponent datetime))