#! /bin/sh # -*-scheme-*- exec ${MES-bin/mes} --no-auto-compile -L ${0%/*} -L module -C module -e '(tests srfi-1)' -s "$0" "$@" !# ;;; -*-scheme-*- ;;; GNU Mes --- Maxwell Equations of Software ;;; Copyright © 2016 Jan (janneke) Nieuwenhuizen ;;; ;;; This file is part of GNU Mes. ;;; ;;; GNU Mes is free software; you can redistribute it and/or modify it ;;; under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3 of the License, or (at ;;; your option) any later version. ;;; ;;; GNU Mes is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Mes. If not, see . (define-module (tests srfi-1) #:use-module (srfi srfi-1) #:use-module (mes mes-0) #:use-module (mes test)) (mes-use-module (srfi srfi-1)) (mes-use-module (mes test)) (pass-if "first dummy" #t) (pass-if-not "second dummy" #f) (pass-if-equal "map 1,2" '((0 . a)) (map (lambda (x y) (cons x y)) '(0) '(a b))) (pass-if-equal "map 2,1" '((0 . a)) (map (lambda (x y) (cons x y)) '(0 1) '(a))) (pass-if "for-each 1,2" (for-each (lambda (x y) (cons x y)) '(0) '(a b))) (pass-if "for-each 2,1" (for-each (lambda (x y) (cons x y)) '(0 1) '(a))) (pass-if-equal "fold" '(3 2 1) (fold cons '() '(1 2 3))) (pass-if-equal "fold-right" '(1 2 3) (fold-right cons '() '(1 2 3))) (pass-if-equal "unfold" '(4 3 2 1 foo) (unfold zero? identity 1- 4 (const '(foo)))) (pass-if-equal "remove" '(1 3) (remove even? '(1 2 3))) (pass-if-equal "append-reverse" '(3 2 1 4 5 6) (append-reverse '(1 2 3) '(4 5 6))) (pass-if-equal "member lambda" '(4) (member 2 '(1 4) (lambda (x y) (even? y)))) (pass-if-not "member =" (member 2 '(1 4) =)) (pass-if-equal "append-map" '(0 0 1) (append-map iota '(1 2))) (pass-if-equal "fold-3" '(1 A a 2 B b 3 C c) (fold cons* '() '(3 2 1) '(C B A) '(c b a))) (pass-if-equal "fold-right-3" '(1 A a 2 B b 3 C c) (fold-right cons* '() '(1 2 3) '(A B C) '(a b c))) (result 'report)