-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathutils-test.rkt
60 lines (54 loc) · 2.53 KB
/
utils-test.rkt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#lang racket
(require rackunit
"utils.rkt")
(test-case "maximum-for-procedure test case"
(check-equal? (maximum-for-procedure (list 0 1 2 3)
(lambda (elem) elem)
(lambda (elem) elem))
3)
(check-equal? (maximum-for-procedure (list 0 1 2 3)
(lambda (elem) (- elem))
(lambda (elem) (- elem)))
0)
(check-equal? (maximum-for-procedure (list 0 1 2 3)
(lambda (elem) 4)
(lambda (elem) elem))
0)
(let* ([tolerance 0.051]
[percetage-one (lambda (a-list)
(/ (count (lambda (a-number)
(= a-number 1))
a-list)
(length a-list)))]
[percetage-one-with-tolerance
(lambda (a-list)
(+ (percetage-one a-list)
tolerance))])
;; this check tests whether the procedure works with an in-built tolerance
(check-equal?
(maximum-for-procedure (list (list 0 0 1 1 1 1 1 1 1 1) ; 80.0
(list 0 0 1 1 1 1 1 1 1) ; 77.77777...
(list 0 1 1 1) ; 75.0
(list 0 0 0 1 1 1 1 1 1 1)) ; 70.0
(lambda (elem) (percetage-one elem))
(lambda (elem) (percetage-one-with-tolerance elem)))
(list 0 0 0 1 1 1 1 1 1 1)))
(let* ([tolerance 0.023]
[percetage-one (lambda (a-list)
(/ (count (lambda (a-number)
(= a-number 1))
a-list)
(length a-list)))]
[percetage-one-with-tolerance
(lambda (a-list)
(+ (percetage-one a-list)
tolerance))])
;; this check tests whether the procedure works with an in-built tolerance
(check-equal?
(maximum-for-procedure (list (list 0 0 1 1 1 1 1 1 1 1) ; 80.0
(list 0 0 1 1 1 1 1 1 1) ; 77.77777...
(list 0 1 1 1) ; 75.0
(list 0 0 0 1 1 1 1 1 1 1)) ; 70.0
(lambda (elem) (percetage-one elem))
(lambda (elem) (percetage-one-with-tolerance elem)))
(list 0 0 1 1 1 1 1 1 1))))