#!/bin/sh exec ${srcdir:-.}/guile-test-env guile -s "$0" "$@" !# (use-modules (gw-test-enumeration) (unit-test)) (define-class ()) (define-method (test-val->int (self )) (assert-true (and (procedure? enum--val->int) (= 0 (enum--val->int 0)) (= 1 (enum--val->int 1)) (= 2 (enum--val->int 2)) (= 0 (enum--val->int 'gw-test-enum-zero)) (= 1 (enum--val->int 'gw-test-enum-one)) (= 2 (enum--val->int 'gw-test-enum-two)) (not (enum--val->int 'foo-foo)) (not (enum--val->int 32))))) (define-method (test-val->sym (self )) (assert-true (and (procedure? enum--val->sym) (not (enum--val->sym 999 #f)) (null? (enum--val->sym 999 #t)) (eq? 'gw-test-enum-zero (enum--val->sym 0 #f)) (eq? 'gw-test-enum-one (enum--val->sym 1 #f)) (memq (enum--val->sym 2 #f) '(gw-test-enum-two gw-test-enum-two-too gw-test-enum-two-many)) (equal? '(gw-test-enum-zero) (enum--val->sym 0 #t)) (equal? '(gw-test-enum-one) (enum--val->sym 1 #t)) (let ((result (enum--val->sym 2 #t))) (and (memq 'gw-test-enum-two result) (memq 'gw-test-enum-two-too result) (memq 'gw-test-enum-two-many result) (null? (delq 'gw-test-enum-two (delq 'gw-test-enum-two-too (delq 'gw-test-enum-two-many result))))))))) (define-method (test-enumeration-echo (self )) (assert-true (and (procedure? gw-test-gw-enumeration-echo) (= 0 (gw-test-gw-enumeration-echo 0)) (= 1 (gw-test-gw-enumeration-echo 1)) (= 2 (gw-test-gw-enumeration-echo 2)) (= 0 (gw-test-gw-enumeration-echo 'gw-test-enum-zero)) (= 1 (gw-test-gw-enumeration-echo 'gw-test-enum-one)) (= 2 (gw-test-gw-enumeration-echo 'gw-test-enum-two)) (= 2 (gw-test-gw-enumeration-echo 'gw-test-enum-two-too)) (= 2 (gw-test-gw-enumeration-echo 'gw-test-enum-two-many))))) (exit-with-summary (run-all-defined-test-cases)) ;; Local Variables: ;; mode: scheme ;; End: