source: trunk/source/tests/ansi-tests/evenp.lsp @ 8991

Last change on this file since 8991 was 8991, checked in by gz, 12 years ago

Check in the gcl ansi test suite (original, in preparation for making local changes)

File size: 1.4 KB
Line 
1;-*- Mode:     Lisp -*-
2;;;; Author:   Paul Dietz
3;;;; Created:  Sun Aug 31 10:39:01 2003
4;;;; Contains: Tests of EVENP
5
6(in-package :cl-test)
7
8(compile-and-load "numbers-aux.lsp")
9
10(deftest evenp.error.1
11  (signals-error (evenp) program-error)
12  t)
13
14(deftest evenp.error.2
15  (signals-error (evenp 0 nil) program-error)
16  t)
17
18(deftest evenp.error.3
19  (check-type-error #'evenp #'integerp)
20  nil)
21
22(deftest evenp.1
23  (loop for x in *numbers*
24        when (integerp x)
25        do (evenp x))
26  nil)
27
28(deftest evenp.3
29  (loop for x = (random-fixnum) 
30        repeat 10000
31        when (or
32              (not (evenp (+ x x)))
33              (evenp (+ x x 1))
34              (if (evenp x)
35                  (or (evenp (1+ x))
36                      (evenp (1- x))
37                      (/= (mod x 2) 0))
38                (or (not (evenp (1+ x)))
39                    (not (evenp (1- x)))
40                    (= (mod x 2) 0))))
41        collect x)
42  nil)
43
44(deftest evenp.4
45  (let ((upper-bound 1000000000000000)
46        (lower-bound -1000000000000000))
47    (loop for x = (random-from-interval upper-bound lower-bound)
48          repeat 10000
49          when (or
50                (not (evenp (+ x x)))
51                (evenp (+ x x 1))
52                (if (evenp x)
53                    (or (evenp (1+ x))
54                        (evenp (1- x))
55                        (/= (mod x 2) 0))
56                  (or (not (evenp (1+ x)))
57                      (not (evenp (1- x)))
58                      (= (mod x 2) 0))))
59          collect x))
60  nil)
61
62(deftest evenp.5
63  (notnot-mv (evenp 0))
64  t)
65
66(deftest evenp.6
67  (evenp 1)
68  nil)
69
70(deftest evenp.7
71  (notnot-mv (evenp 100000000000000000000000000000000))
72  t)
73
74(deftest evenp.8
75  (evenp 100000000000000000000000000000001)
76  nil)
Note: See TracBrowser for help on using the repository browser.