blob: 405b6aafec5e8d04a7439a5e084ae1bf7e32e476 (
plain)
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
(in-package :cl-user)
(defpackage transacc-tests
(:use :cl
:fiveam))
(in-package :transacc-tests)
(def-suite transacc-suite
:description "Test transacc")
;;; Game tests
(def-suite* game-suite
:description "Test object and methods for game"
:in transacc-suite)
(test make-game
(let* ((p (player:init-player "Joze"))
(c (list (commodities:new-commodity "apple" 5)
(commodities:new-commodity "pear" 7)))
(z (zone:new-zone "Bronx" c))
(g (game:new-game p z (list z))))
(is (equal (type-of g) 'game::game))))
;; testing buy-item
(test buy-item
(let* ((p (player:init-player "Joze"))
(c (list (commodities:new-commodity "apple" 5)
(commodities:new-commodity "pear" 7)))
(z (zone:new-zone "Bronx" c))
(g (game:new-game p z (list z))))
(is (game:buy-item g "apple" 10))
(is (not (game:sell-item g "pear" 1)))
(is (game:sell-item g "apple" 5))
(is (game:sell-item g "apple" 5))
(is (game:buy-item g "pear" 20))
(is (game:sell-item g "pear" 100))))
;; testing change-zone
(test change-zone
(let* ((p (player:init-player "Joze"))
(c (list (commodities:new-commodity "apple" 5)
(commodities:new-commodity "pear" 7)))
(c2 (list (commodities:new-commodity "apple" 6)
(commodities:new-commodity "pear" 2)))
(z (zone:new-zone "Bronx" c))
(z2 (zone:new-zone "Manhattan" c2))
(g (game:new-game p z (list z z2))))
(is (string= (zone:name (game::cur-zone g))
"Bronx"))
(is (game:change-zone g "Manhattan"))
(is (string= (zone:name (game::cur-zone g))
"Manhattan"))
(game:buy-item g "pear" 10)
(is (not (game:change-zone g "Paris")))
(is (game:change-zone g "Bronx"))
(game:sell-item g "pear" 10)
(is (= (player:get-cash (game::player g))
2050))))
;; testing get profit
(test get-profit
(let* ((p (player:init-player "Joze"))
(c (list (commodities:new-commodity "apple" 5)
(commodities:new-commodity "pear" 7)))
(c2 (list (commodities:new-commodity "apple" 6)
(commodities:new-commodity "pear" 2)))
(z (zone:new-zone "Bronx" c))
(z2 (zone:new-zone "Manhattan" c2))
(g (game:new-game p z2 (list z z2))))
(is (= 0 (game:get-profit g "pear")))
(game:buy-item g "pear" 10)
(is (= 0 (game:get-profit g "pear")))
(is (= 5 (game:get-profit-in-zone g "pear" z)))
(game:change-zone g "Bronx")
(is (= 5 (game:get-profit g "pear")))
(is (= 0 (game:get-profit-in-zone g "pear" z2)))))
|