This repository has been archived by the owner on Jul 1, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathprocedure script test.dscript
78 lines (51 loc) · 1.82 KB
/
procedure script test.dscript
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
# include 2 typical procedure scripts
test_generate_number_list:
type: procedure
debug: false
definitions: low|high
script:
# Figure out how many iterations to do
- define iterations '<el@val[%high%].sub[<def[low].sub[1]>].asint>'
# Counters are easier with flags, though can also
# be done with the use of definitions.
- flag server 'gnl_counter:%low%'
# Add numbers to a flag array, then increase the counter
# (:->:... adds an item to a flag array )
# (:++ increases a flag by '1'.)
- repeat %iterations% {
- flag server gnl_temp:->:<server.flag[gnl_counter].asint>
- flag server gnl_counter:++
}
# // AFTER NUMBER ITERATIONS
# Return the compiled list from the flag array
# (passively indicates we'll run code beyond this determination)
- determine passively '<server.flag[gnl_temp].as_list>'
# Clean up flags (:! action removes flags entirely)
- flag server gnl_temp:!
- flag server gnl_counter:!
test_isbetween:
type: procedure
debug: false
definitions: val|low|high
script:
- if %val% matches decimal && %val% >= %low% && %val% <= %high%
determine true
else determine false
Procedure Script Unit Test:
type: world
debug: false
speed: 0
events:
on server start:
- if <server.flag[unit_tasks].as_list> !contains <script>
flag server unit_tasks:->:<script>
script:
- define output "s@Unit Test Write Output"
- run 's@Unit Test Create Output' 'd:<script.name>'
- run "s@Unit Test Set Prefix" 'def:test'
- if '<proc[test_generate_number_list].context[5|10]>' == 'li@5|6|7|8|9|10'
run %output% 'def:generate_number_list|Pass'
else run %output% 'def:generate_number_list|Fail'
- if '<proc[test_isbetween].context[5|1|10]>' == 'true'
run %output% 'def:is_between|Pass'
else run %output% 'def:is_between|Fail'