dsntk_examples/examples/
mod.rs

1//! # Examples of decision tables in text form
2//!
3//! Decision tables defined in this module are used to test
4//! the functionality of **decision tables** crate.
5//!
6//! ### Estimation of the number of all possible decision table types
7//!
8//! ```ORI 3``` *ORIENTATION*            **horizontal**, **vertical**, **crosstab**
9//!
10//! ```ITN 2``` *INFORMATION-ITEM-NAME*  **present**, **not present**
11//!
12//! ```OLB 2``` *OUTPUT-LABEL*           **present**, **not present**
13//!
14//! ```IOV 2``` *INPUT-OUTPUT-VALUES*    **present**, **not present**
15//!
16//! ```OUT 2``` *OUTPUTS*                **single**, **multiple**
17//!
18//! ```ANN 2``` *ANNOTATIONS*            **present**, **not present**
19//!
20//! ```text
21//! ┌─────┬─────┬─────┬─────┬─────┬─────┬────────────────────┬─────────┐
22//! │ ORI │ ITN │ OLB │ IOV │ OUT │ ANN │      Remarks       │ Example │
23//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
24//! │ HT  │ NO  │ NO  │ NO  │ SGL │ NO  │                    │ EX_0001 │
25//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
26//! │ HT  │ NO  │ NO  │ NO  │ SGL │ YES │                    │ EX_0002 │
27//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
28//! │ HT  │ NO  │ NO  │ NO  │ MUL │ NO  │                    │ EX_0003 │
29//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
30//! │ HT  │ NO  │ NO  │ NO  │ MUL │ YES │                    │ EX_0004 │
31//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
32//! │ HT  │ NO  │ NO  │ YES │ SGL │ NO  │                    │ EX_0005 │
33//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
34//! │ HT  │ NO  │ NO  │ YES │ SGL │ YES │                    │ EX_0006 │
35//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
36//! │ HT  │ NO  │ NO  │ YES │ MUL │ NO  │                    │ EX_0007 │
37//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
38//! │ HT  │ NO  │ NO  │ YES │ MUL │ YES │                    │ EX_0008 │
39//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
40//! │ HT  │ NO  │ YES │ NO  │ SGL │ NO  │                    │ EX_0009 │
41//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
42//! │ HT  │ NO  │ YES │ NO  │ SGL │ YES │                    │ EX_0010 │
43//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
44//! │ HT  │ NO  │ YES │ NO  │ MUL │ NO  │                    │ EX_0011 │
45//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
46//! │ HT  │ NO  │ YES │ NO  │ MUL │ YES │                    │ EX_0012 │
47//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
48//! │ HT  │ NO  │ YES │ YES │ SGL │ NO  │                    │ EX_0013 │
49//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
50//! │ HT  │ NO  │ YES │ YES │ SGL │ YES │                    │ EX_0014 │
51//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
52//! │ HT  │ NO  │ YES │ YES │ MUL │ NO  │                    │ EX_0015 │
53//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
54//! │ HT  │ NO  │ YES │ YES │ MUL │ YES │                    │ EX_0016 │
55//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
56//! │ HT  │ YES │ NO  │ NO  │ SGL │ NO  │                    │ EX_0017 │
57//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
58//! │ HT  │ YES │ NO  │ NO  │ SGL │ YES │                    │ EX_0018 │
59//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
60//! │ HT  │ YES │ NO  │ NO  │ MUL │ NO  │                    │ EX_0019 │
61//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
62//! │ HT  │ YES │ NO  │ NO  │ MUL │ YES │                    │ EX_0020 │
63//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
64//! │ HT  │ YES │ NO  │ YES │ SGL │ NO  │                    │ EX_0021 │
65//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
66//! │ HT  │ YES │ NO  │ YES │ SGL │ YES │                    │ EX_0022 │
67//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
68//! │ HT  │ YES │ NO  │ YES │ MUL │ NO  │                    │ EX_0023 │
69//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
70//! │ HT  │ YES │ NO  │ YES │ MUL │ YES │                    │ EX_0024 │
71//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
72//! │ HT  │ YES │ YES │ NO  │ SGL │ NO  │                    │ EX_0025 │
73//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
74//! │ HT  │ YES │ YES │ NO  │ SGL │ YES │                    │ EX_0026 │
75//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
76//! │ HT  │ YES │ YES │ NO  │ MUL │ NO  │                    │ EX_0027 │
77//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
78//! │ HT  │ YES │ YES │ NO  │ MUL │ YES │                    │ EX_0028 │
79//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
80//! │ HT  │ YES │ YES │ YES │ SGL │ NO  │                    │ EX_0029 │
81//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
82//! │ HT  │ YES │ YES │ YES │ SGL │ YES │                    │ EX_0030 │
83//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
84//! │ HT  │ YES │ YES │ YES │ MUL │ NO  │                    │ EX_0031 │
85//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
86//! │ HT  │ YES │ YES │ YES │ MUL │ YES │                    │ EX_0032 │
87//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
88//! │ VT  │ NO  │ NO  │ NO  │ SGL │ NO  │                    │ EX_0033 │
89//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
90//! │ VT  │ NO  │ NO  │ NO  │ SGL │ YES │                    │ EX_0034 │
91//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
92//! │ VT  │ NO  │ NO  │ NO  │ MUL │ NO  │                    │ EX_0035 │
93//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
94//! │ VT  │ NO  │ NO  │ NO  │ MUL │ YES │                    │ EX_0036 │
95//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
96//! │ VT  │ NO  │ NO  │ YES │ SGL │ NO  │                    │ EX_0037 │
97//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
98//! │ VT  │ NO  │ NO  │ YES │ SGL │ YES │                    │ EX_0038 │
99//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
100//! │ VT  │ NO  │ NO  │ YES │ MUL │ NO  │                    │ EX_0039 │
101//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
102//! │ VT  │ NO  │ NO  │ YES │ MUL │ YES │                    │ EX_0040 │
103//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
104//! │ VT  │ NO  │ YES │ NO  │ SGL │ NO  │                    │ EX_0041 │
105//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
106//! │ VT  │ NO  │ YES │ NO  │ SGL │ YES │                    │ EX_0042 │
107//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
108//! │ VT  │ NO  │ YES │ NO  │ MUL │ NO  │                    │ EX_0043 │
109//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
110//! │ VT  │ NO  │ YES │ NO  │ MUL │ YES │                    │ EX_0044 │
111//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
112//! │ VT  │ NO  │ YES │ YES │ SGL │ NO  │                    │ EX_0045 │
113//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
114//! │ VT  │ NO  │ YES │ YES │ SGL │ YES │                    │ EX_0046 │
115//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
116//! │ VT  │ NO  │ YES │ YES │ MUL │ NO  │                    │ EX_0047 │
117//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
118//! │ VT  │ NO  │ YES │ YES │ MUL │ YES │                    │ EX_0048 │
119//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
120//! │ VT  │ YES │ NO  │ NO  │ SGL │ NO  │                    │ EX_0049 │
121//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
122//! │ VT  │ YES │ NO  │ NO  │ SGL │ YES │                    │ EX_0050 │
123//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
124//! │ VT  │ YES │ NO  │ NO  │ MUL │ NO  │                    │ EX_0051 │
125//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
126//! │ VT  │ YES │ NO  │ NO  │ MUL │ YES │                    │ EX_0052 │
127//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
128//! │ VT  │ YES │ NO  │ YES │ SGL │ NO  │                    │ EX_0053 │
129//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
130//! │ VT  │ YES │ NO  │ YES │ SGL │ YES │                    │ EX_0054 │
131//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
132//! │ VT  │ YES │ NO  │ YES │ MUL │ NO  │                    │ EX_0055 │
133//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
134//! │ VT  │ YES │ NO  │ YES │ MUL │ YES │                    │ EX_0056 │
135//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
136//! │ VT  │ YES │ YES │ NO  │ SGL │ NO  │                    │ EX_0057 │
137//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
138//! │ VT  │ YES │ YES │ NO  │ SGL │ YES │                    │ EX_0058 │
139//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
140//! │ VT  │ YES │ YES │ NO  │ MUL │ NO  │                    │ EX_0059 │
141//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
142//! │ VT  │ YES │ YES │ NO  │ MUL │ YES │                    │ EX_0060 │
143//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
144//! │ VT  │ YES │ YES │ YES │ SGL │ NO  │                    │ EX_0061 │
145//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
146//! │ VT  │ YES │ YES │ YES │ SGL │ YES │                    │ EX_0062 │
147//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
148//! │ VT  │ YES │ YES │ YES │ MUL │ NO  │                    │ EX_0063 │
149//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
150//! │ VT  │ YES │ YES │ YES │ MUL │ YES │                    │ EX_0064 │
151//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
152//! │ CT  │ NO  │ NO  │ NO  │ SGL │ NO  │                    │ EX_0065 │
153//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
154//! │ CT  │ NO  │ NO  │ NO  │ SGL │ YES │ postponed          │ EX_0066 │
155//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
156//! │ CT  │ NO  │ NO  │ NO  │ MUL │ NO  │                    │ EX_0067 │
157//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
158//! │ CT  │ NO  │ NO  │ NO  │ MUL │ YES │ postponed          │ EX_0068 │
159//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
160//! │ CT  │ NO  │ NO  │ YES │ SGL │ NO  │                    │ EX_0069 │
161//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
162//! │ CT  │ NO  │ NO  │ YES │ SGL │ YES │ postponed          │ EX_0070 │
163//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
164//! │ CT  │ NO  │ NO  │ YES │ MUL │ NO  │                    │ EX_0071 │
165//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
166//! │ CT  │ NO  │ NO  │ YES │ MUL │ YES │ postponed          │ EX_0072 │
167//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
168//! │ CT  │ NO  │ YES │ NO  │ SGL │ NO  │                    │ EX_0073 │
169//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
170//! │ CT  │ NO  │ YES │ NO  │ SGL │ YES │ postponed          │ EX_0074 │
171//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
172//! │ CT  │ NO  │ YES │ NO  │ MUL │ NO  │                    │ EX_0075 │
173//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
174//! │ CT  │ NO  │ YES │ NO  │ MUL │ YES │ postponed          │ EX_0076 │
175//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
176//! │ CT  │ NO  │ YES │ YES │ SGL │ NO  │                    │ EX_0077 │
177//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
178//! │ CT  │ NO  │ YES │ YES │ SGL │ YES │ postponed          │ EX_0078 │
179//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
180//! │ CT  │ NO  │ YES │ YES │ MUL │ NO  │                    │ EX_0079 │
181//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
182//! │ CT  │ NO  │ YES │ YES │ MUL │ YES │ postponed          │ EX_0080 │
183//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
184//! │ CT  │ YES │ NO  │ NO  │ SGL │ NO  │                    │ EX_0081 │
185//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
186//! │ CT  │ YES │ NO  │ NO  │ SGL │ YES │ postponed          │ EX_0082 │
187//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
188//! │ CT  │ YES │ NO  │ NO  │ MUL │ NO  │                    │ EX_0083 │
189//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
190//! │ CT  │ YES │ NO  │ NO  │ MUL │ YES │ postponed          │ EX_0084 │
191//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
192//! │ CT  │ YES │ NO  │ YES │ SGL │ NO  │                    │ EX_0085 │
193//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
194//! │ CT  │ YES │ NO  │ YES │ SGL │ YES │ postponed          │ EX_0086 │
195//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
196//! │ CT  │ YES │ NO  │ YES │ MUL │ NO  │                    │ EX_0087 │
197//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
198//! │ CT  │ YES │ NO  │ YES │ MUL │ YES │ postponed          │ EX_0088 │
199//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
200//! │ CT  │ YES │ YES │ NO  │ SGL │ NO  │                    │ EX_0089 │
201//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
202//! │ CT  │ YES │ YES │ NO  │ SGL │ YES │ postponed          │ EX_0090 │
203//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
204//! │ CT  │ YES │ YES │ NO  │ MUL │ NO  │                    │ EX_0091 │
205//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
206//! │ CT  │ YES │ YES │ NO  │ MUL │ YES │ postponed          │ EX_0092 │
207//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
208//! │ CT  │ YES │ YES │ YES │ SGL │ NO  │                    │ EX_0093 │
209//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
210//! │ CT  │ YES │ YES │ YES │ SGL │ YES │ postponed          │ EX_0094 │
211//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
212//! │ CT  │ YES │ YES │ YES │ MUL │ NO  │                    │ EX_0095 │
213//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
214//! │ CT  │ YES │ YES │ YES │ MUL │ YES │ postponed          │ EX_0096 │
215//! ├─────┼─────┼─────┼─────┼─────┼─────┼────────────────────┼─────────┤
216//! │ CT  │ YES │ YES │ NO  │ SGL │ NO  │ Three inputs.      │ EX_0097 │
217//! └─────┴─────┴─────┴─────┴─────┴─────┴────────────────────┴─────────┘
218//! ```
219
220pub mod valid;
221
222pub const EXAMPLE_0001_DTB: &str = r#"
223  ┌───┬──────────┬───────╥──────┐
224  │ U │ Customer │ Order ║      │
225  ╞═══╪══════════╪═══════╬══════╡
226  │ 1 │ Business │  <10  ║ 0.10 │
227  ├───┼──────────┼───────╫──────┤
228  │ 2 │ Business │ >=10  ║ 0.15 │
229  ├───┼──────────┼───────╫──────┤
230  │ 3 │ Private  │   -   ║ 0.05 │
231  └───┴──────────┴───────╨──────┘
232"#;
233
234pub const EXAMPLE_0001_CTX: &str = r#"
235{
236  Customer: "Business",
237     Order:  10.00
238}
239"#;
240
241pub const EXAMPLE_0002_DTB: &str = r#"
242  ┌───────────────────────╥───────────────┬──────────┬───────────────┐
243  │ Applicant age         ║     <25       │ [25..60] │      >60      │
244  ├───────────────────────╫──────┬────────┼──────────┼────────┬──────┤
245  │ Medical history       ║ good │  bad   │     -    │  good  │ bad  │
246  ╞═══════════════════════╬══════╪════════╪══════════╪════════╪══════╡
247  │ Applicant risk rating ║ Low  │ Medium │  Medium  │ Medium │ High │
248  ├───────────────────────╫──────┼────────┼──────────┼────────┼──────┤
249  │ Special Discount      ║  10  │    7   │     6    │    4   │  0   │
250  ├───────────────────────╫──────┼────────┼──────────┼────────┼──────┤
251  │           U           ║  1   │    2   │     3    │   4    │   5  │
252  └───────────────────────╨──────┴────────┴──────────┴────────┴──────┘
253% { Applicant age: 20, Medical history: "good" }, {Applicant risk rating: "Low",    Special Discount: 10}
254% { Applicant age: 24, Medical history: "bad"  }, {Applicant risk rating: "Medium", Special Discount: 7}
255% { Applicant age: 25, Medical history: "good" }, {Applicant risk rating: "Medium", Special Discount: 6}
256% { Applicant age: 25, Medical history: "bad"  }, {Applicant risk rating: "Medium", Special Discount: 6}
257% { Applicant age: 60, Medical history: "good" }, {Applicant risk rating: "Medium", Special Discount: 6}
258% { Applicant age: 60, Medical history: "bad"  }, {Applicant risk rating: "Medium", Special Discount: 6}
259% { Applicant age: 61, Medical history: "good" }, {Applicant risk rating: "Medium", Special Discount: 4}
260% { Applicant age: 61, Medical history: "bad"  }, {Applicant risk rating: "High",   Special Discount: 0}
261% { Applicant age: 61, Medical history: "well" }, null
262"#;
263
264pub const EXAMPLE_0002_CTX: &str = r#"
265{
266    Applicant age: 24,
267  Medical history: "good"
268}
269"#;