-(test-equal (time-segment-time (car (schedule-segments sched)))
- '(8 . 1))
-(test-equal (time-segment-time (cadr (schedule-segments sched)))
- '(10 . 0))
-(test-equal (time-segment-time (caddr (schedule-segments sched)))
- '(10 . 10))
-(test-equal (time-segment-time (cadddr (schedule-segments sched)))
- '(11 . 0))
-
+(assert-times-expected (schedule-segments sched)
+ '((8 . 1) (10 . 0) (10 . 10) (11 . 0)))
+
+;; Splitting
+(define (test-split-at schedule time expected-before expected-after)
+ (receive (segments-before segments-after)
+ (schedule-segments-split schedule time)
+ (assert-times-expected segments-before expected-before)
+ (assert-times-expected segments-after expected-after)))
+
+(test-split-at sched 0
+ '()
+ '((8 . 1) (10 . 0) (10 . 10) (11 . 0)))
+(test-split-at sched '(8 . 0)
+ '()
+ '((8 . 1) (10 . 0) (10 . 10) (11 . 0)))
+(test-split-at sched '(8 . 1)
+ '((8 . 1))
+ '((10 . 0) (10 . 10) (11 . 0)))
+(test-split-at sched 9
+ '((8 . 1))
+ '((10 . 0) (10 . 10) (11 . 0)))
+(test-split-at sched 10
+ '((8 . 1) (10 . 0))
+ '((10 . 10) (11 . 0)))
+(test-split-at sched 9000
+ '((8 . 1) (10 . 0) (10 . 10) (11 . 0))
+ '())
+(test-split-at sched '(9000 . 1) ; over nine thousaaaaaaand
+ '((8 . 1) (10 . 0) (10 . 10) (11 . 0))
+ '())