X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=tests.scm;h=b865ca809bb728c6798db8a25b1e3e9bc6fa9cdc;hb=e0499fb27f966a6c81679e9d83260164197e5ff7;hp=228f39febd19cf9c656fb9db99bbf35d758fb0f2;hpb=ed9a7d9fb659766e1c7e719ac899a83809527746;p=8sync.git diff --git a/tests.scm b/tests.scm index 228f39f..b865ca8 100644 --- a/tests.scm +++ b/tests.scm @@ -119,6 +119,75 @@ (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