guile-knots/tests/promise.scm

29 lines
637 B
Scheme
Raw Normal View History

2024-11-19 18:43:43 +00:00
(use-modules (tests)
(fibers)
(unit-test)
(knots parallelism)
(knots promise))
(run-fibers-for-tests
(lambda ()
(let ((promises
(map (lambda (i)
(fibers-delay
(lambda ()
(* i 2))))
(iota 10))))
2025-01-29 16:16:35 +00:00
(assert-equal
#f
(fibers-promise-result-available? (car promises)))
2024-11-19 18:43:43 +00:00
(assert-equal
90
2025-01-29 16:16:35 +00:00
(apply + (fibers-map fibers-force promises)))
(assert-equal
#t
(fibers-promise-result-available? (car promises))))))
2024-11-19 18:43:43 +00:00
(display "promise test finished successfully\n")