;; -*-theme-d-*-

;; Copyright (C) 2018 Tommi Höynälänmaa
;; Distributed under GNU General Public License version 3,
;; see file doc/GPL-3.

;; Expected results: translation and running OK
;; Expected output:
;;   1
;;   -1
;;   1
;;   -1
;;   #t
;;   #f
;;   (1 2 5)
;;   #t
;;   #f
;;   (1 3 6)
;;   ((2) (4 5) (78))
;;   ((10 . 1.5) (5 . 10.0))

(define-proper-program (tests test623)

  (import (standard-library core)
	  (standard-library list-utilities)
	  (standard-library string-utilities)
	  (standard-library console-io))

  (define-simple-proc main (() <none> nonpure)
    (console-display-line (string-char-index "hello" #\e))
    (console-display-line (string-char-index "hello" #\a))
    (console-display-line (string-char-index-right "hello" #\e))
    (console-display-line (string-char-index-right "hello" #\a))
    (console-display-line (string-contains-char? "hello" #\e))
    (console-display-line (string-contains-char? "hello" #\a))
    (console-display-line (filter (lambda (((i <integer>)) <boolean> pure)
				    (>= i 0))
				  '(1 2 -4 5 -6)))
    (console-display-line (distinct-elements? '(1 2 3 4 5) equal?))
    (console-display-line (distinct-elements? '(1 2 3 4 2) equal?))
    (console-display-line (map-car '((1 2) (3 4 5) (6 7 8))))
    (console-display-line (map-cdr '((1 2) (3 4 5) (6 7 8))))
    (console-display-line
     (general-alist-delete 2
			   '((10 . 1.5) (2 . -0.1) (5 . 10.0))
			   equal?))))
