X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=tests.scm;h=b865ca809bb728c6798db8a25b1e3e9bc6fa9cdc;hb=e0499fb27f966a6c81679e9d83260164197e5ff7;hp=52d05ba86e09c23dc777149c67beb7fac2b51949;hpb=4758f0af7e8e7393f54feb8255e7a1cf1e178c57;p=8sync.git diff --git a/tests.scm b/tests.scm index 52d05ba..b865ca8 100644 --- a/tests.scm +++ b/tests.scm @@ -114,6 +114,82 @@ '((8 . 1) (10 . 0) (10 . 10) (11 . 0)) '()) +;; Break off half of those and do some tests on them +(define some-extracted + (schedule-extract-until! sched 10)) +(assert-times-expected some-extracted '((8 . 1) (10 . 0))) +(assert-times-expected (schedule-segments sched) '((10 . 10) (11 . 0))) +(define first-extracted-queue + (time-segment-queue (car some-extracted))) +(define second-extracted-queue + (time-segment-queue (cadr some-extracted))) +(test-assert (not (q-empty? first-extracted-queue))) +(test-equal ((deq! first-extracted-queue)) 'd) +(test-assert (q-empty? first-extracted-queue)) + +(test-assert (not (q-empty? second-extracted-queue))) +(test-equal ((deq! second-extracted-queue)) 'a) +(test-equal ((deq! second-extracted-queue)) 'b) +(test-assert (q-empty? second-extracted-queue)) + +;; Add one more and test flattening to a queue +(test-assert (not (schedule-empty? sched))) +(schedule-add! '(10 . 10) f-proc sched) +(define remaining-segments + (schedule-extract-until! sched '(9000 . 1))) +(test-assert (schedule-empty? sched)) +(define some-queue (make-q)) +(enq! some-queue (const 'ho-ho)) +(enq! some-queue (const 'ha-ha)) +(add-segments-contents-to-queue! remaining-segments some-queue) +(test-assert (not (q-empty? some-queue))) +(test-equal 'ho-ho ((deq! some-queue))) +(test-equal 'ha-ha ((deq! some-queue))) +(test-equal 'e ((deq! some-queue))) +(test-equal 'f ((deq! some-queue))) +(test-equal 'c ((deq! some-queue))) +(test-assert (q-empty? some-queue)) + +;; ... whew! + +;; Run/wrap request stuff +;; ---------------------- + +(let ((wrapped (wrap (+ 1 2)))) + (test-assert (procedure? wrapped)) + (test-equal (wrapped) 3)) + +(let ((run-two-squared (run (lambda () (* 2 2))))) + (test-assert (run-request? run-two-squared)) + (test-assert (procedure? (run-request-proc run-two-squared))) + (test-equal ((run-request-proc run-two-squared)) 4) + (test-eq (run-request-when run-two-squared) #f)) + +(let ((run-two-squared (run (lambda () (* 2 2)) '(88 . 0)))) + (test-assert (run-request? run-two-squared)) + (test-assert (procedure? (run-request-proc run-two-squared))) + (test-equal ((run-request-proc run-two-squared)) 4) + (test-equal (run-request-when run-two-squared) '(88 . 0))) + +(let ((run-two-squared (run-wrap (* 2 2)))) + (test-assert (run-request? run-two-squared)) + (test-assert (procedure? (run-request-proc run-two-squared))) + (test-equal ((run-request-proc run-two-squared)) 4) + (test-eq (run-request-when run-two-squared) #f)) + +(let ((run-two-squared (run-wrap-at (* 2 2) '(88 . 0)))) + (test-assert (run-request? run-two-squared)) + (test-assert (procedure? (run-request-proc run-two-squared))) + (test-equal ((run-request-proc run-two-squared)) 4) + (test-equal (run-request-when run-two-squared) '(88 . 0))) + + +;; Agenda tests +;; ------------ + + + + ;; End tests (test-end "tests")