From: Christopher Allan Webber Date: Wed, 18 Nov 2015 23:39:07 +0000 (-0600) Subject: Starting to add tests X-Git-Tag: v0.1.0~166 X-Git-Url: https://jxself.org/git/?p=8sync.git;a=commitdiff_plain;h=4e11c23676cb1d82d01c4609bdf7639a268da3ce Starting to add tests --- diff --git a/tests.scm b/tests.scm new file mode 100644 index 0000000..b1ec42c --- /dev/null +++ b/tests.scm @@ -0,0 +1,85 @@ +#!/usr/bin/guile \ +-s +!# + +(define-module (tests test-core) + #:use-module (srfi srfi-64) + #:use-module (ice-9 q) + #:use-module (loopy agenda)) + +(test-begin "tests") + + +;; Timer tests +;; =========== + +(test-assert (time-= '(1 . 1) '(1 . 1))) +(test-assert (not (time-= '(1 . 1) '(1 . 0)))) +(test-assert (not (time-= '(0 . 1) '(1 . 1)))) + +(test-assert (time-< '(1 . 1) '(1 . 2))) +(test-assert (time-< '(7 . 2) '(8 . 2))) +(test-assert (not (time-< '(7 . 2) '(7 . 2)))) +(test-assert (not (time-< '(7 . 8) '(7 . 2)))) +(test-assert (not (time-< '(8 . 2) '(7 . 2)))) + + + +;;; Schedule tests +;;; ============== + +;; helpers +(define a-proc (const 'a)) +(define b-proc (const 'b)) +(define c-proc (const 'c)) + +(define sched (make-schedule)) +(test-assert (schedule-empty? sched)) + +;; Add a segment at (10 . 0) +(schedule-add! 10 a-proc sched) +(test-assert (not (schedule-empty? sched))) +(test-equal (length (schedule-segments sched)) 1) +(test-equal (time-segment-time (car (schedule-segments sched))) + '(10 . 0)) +(test-equal (q-length (time-segment-queue (car (schedule-segments sched)))) + 1) +(test-eq (q-front (time-segment-queue (car (schedule-segments sched)))) + a-proc) +(test-eq (q-rear (time-segment-queue (car (schedule-segments sched)))) + a-proc) + +;; Add another segment at (10 . 0) +(schedule-add! '(10 . 0) b-proc sched) +(test-assert (not (schedule-empty? sched))) +(test-equal (length (schedule-segments sched)) 1) +(test-equal (time-segment-time (car (schedule-segments sched))) + '(10 . 0)) +(test-equal (q-length (time-segment-queue (car (schedule-segments sched)))) + 2) +(test-eq (q-front (time-segment-queue (car (schedule-segments sched)))) + a-proc) +(test-eq (q-rear (time-segment-queue (car (schedule-segments sched)))) + b-proc) + +;; Add a segment to (11 . 0), (8 . 1) and (10 . 10) +(schedule-add! 11 a-proc sched) +(schedule-add! '(8 . 1) c-proc sched) +(schedule-add! '(10 . 10) c-proc sched) +(test-assert (not (schedule-empty? sched))) +(test-equal (length (schedule-segments sched)) 4) +(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)) + + +;; End tests + +(test-end "tests") +;; (test-exit) +