|
<< Click to Display Table of Contents >> Navigation: 3. Script Language > Arrays and Data-Structures > AVL Tree - Concepts and Real-World Use |
MiniRobotLanguage (MRL)
AVL Tree - Understanding the Basics
A Guide to Self-Balancing Trees and Their Applications
Overview
With the ASA command, we are introducing a new data type known as an associative array. In this type, the left side—also called the Key—is always a string by default, although a number can also be used, which will then be stored as a string. The right side, referred to as the Value, can be a string, an integer, or a floating-point number, which are the usual three data types. Thus, we always have a Key-Value relationship, allowing us to input a Key and receive the corresponding Value. This functions similarly to variables in the Smart Packaged Robot, where a variable name can be assigned a value. However, variable names in the Smart Packaged Robot are limited to 5 characters, whereas there are no significant length restrictions for Keys here. In essence, Keys can be of arbitrary length, as can the Values when they are strings. Additionally, these strings are not null-terminated; therefore, all 256 ASCII characters can be used on both the left and right sides, as both Keys and Values. This gives a general overview of this new associative data type.
An AVL Tree is a self-balancing binary search tree named after its inventors, Adelson-Velsky and Landis.
It ensures efficient data operations by maintaining a balance where the height difference between the left and right subtrees of any node (the balance factor) is at most 1.
This balance is achieved through rotations, keeping search, insertion, and deletion times at O(log n), where n is the number of nodes.
In MiniRobotLanguage (MRL), AVL trees are managed as Associative Arrays using ASA. commands, offering a powerful way to handle key-value pairs in dynamic environments.
This guide explores the core concepts of AVL trees and illustrates their real-world applications using MRL commands, focusing on practical scenarios rather than detailed syntax.
An AVL Tree is a binary search tree that automatically balances itself to optimize performance. Its key features include:
•**Self-Balancing**: Rotations adjust the tree when insertions or deletions disrupt the balance, preventing performance degradation.
•**Key-Value Storage**: Each node holds a unique key and its associated value, functioning like a dynamic dictionary.
•**Logarithmic Efficiency**: Operations are performed in \(O(\log n)\) time due to the balanced height.
AVL trees shine in scenarios requiring:
•**Fast Retrieval**: Ideal for databases where quick lookups are essential, such as customer records in an e-commerce system.
•**Dynamic Updates**: Perfect for applications with frequent data changes, like real-time stock market tracking.
•**Ordered Access**: Useful for sorted data needs, such as leaderboards in gaming platforms.
Associative Array: A collection of key-value pairs, synonymous with AVL trees in MRL, used for efficient data mapping.Handle: A unique identifier for an AVL tree instance, enabling management of multiple trees.Node: A single key-value pair within the tree, navigable for traversal.Serialization: Converting the tree into a string or file for storage or sharing.Deserialization: Reconstructing the tree from a serialized format.Cloning: Creating an independent copy for parallel use or backup.Persistence: Saving the tree to a file or variable for long-term use.
These commands create, validate, and clean up AVL trees.
•ASA.New: Creates a new AVL tree. Example: In an online store, initialize a tree to manage product inventory (e.g., key = product ID, value = stock level).
•ASA.End: Frees the allocated tree. Example: Clean up inventory data after a daily sync in a retail system.
•ASA.Validate: Checks if a handle is valid. Example: Verify a user profile tree’s integrity before processing login attempts.
These commands manipulate and query the tree’s data.
•ASA.Set: Adds or updates a key-value pair. Example: Update a user’s score in a gaming leaderboard.
•ASA.Get: Retrieves a value by key. Example: Fetch a customer’s order history from an e-commerce database.
•ASA.Del: Removes a key-value pair. Example: Delete an expired item from a stock list.
•ASA.First/Next/Last/Prev: Navigates nodes. Example: Iterate through a sorted list of high scores in a game.
These commands save and restore the tree.
•ASA.Store/Restore: Serializes to/from a string. Example: Save a user’s preferences to a session variable in a web app.
•ASA.FileStore/FileRestore: Saves to/from a file. Example: Backup a project’s task list to a file for nightly archiving.
This command duplicates the tree.
•ASA.Clone: Creates a copy. Example: Duplicate a customer database for testing new features without affecting live data.
- **E-commerce Inventory**: Use ASA.Set to add products and ASA.FileStore to save daily stock updates.
- **Gaming Leaderboards**: Employ ASA.First/Next to display top players and ASA.Clone for seasonal resets.
- **Financial Systems**: Use ASA.Get for real-time stock price lookups and ASA.Store to cache data.
AVL Trees, implemented as Associative Arrays in MRL, offer a robust solution for managing ordered, dynamic data with O(log n) efficiency. The ASA commands enable creation, manipulation, persistence, and cloning, making them suitable for e-commerce, gaming, finance, and more. These tools empower developers to build scalable, high-performance applications with ease.
See also:
• ASA.New
• ASA.End
• ASA.Set
------------------------------------
Speed-Dump:
------------------------------------
001 0000000000000036 0001
...
011 0000000000000298 0001 SAV.Save|$$LAA|$$LAB|$$LAC|$$LAD|$$COL|$$COA|$$ARR|$$RES
012 0000000000000003 0001
013 0000000000000015 0001
014 0000000000000000 0000
...
097 0000000000000000 0000
098 0000000000000049 0001 VAR.$$MSG=(1) ASA.new/validate/end - String type
099 0000000000000193 0001 ASA.new|$$TRE|s
100 0000000000000097 0001 JIZ.$$TRE|Lab_failed
101 0000000000000077 0001 ASA.validate|$$TRE|$$RES
102 0000000000000064 0001 JIZ.$$RES|Lab_failed
103 0000000000000065 0001 ASA.gty|$$TRE|$$TYP
104 0000000000000112 0001 JIV.$$TYP!s|Lab_failed
105 0000000000000059 0001 ASA.end|$$TRE
106 0000000000000060 0001 ASA.validate|$$TRE|$$RES
107 0000000000000059 0001 JNZ.$$RES|Lab_failed
108 0000000000000003 0001
109 0000000000000002 0001
110 0000000000000026 0001 VAR.$$MSG=(2) ASA.new/validate/end - Quad integer type
111 0000000000000074 0001 ASA.new|$$TRE|i
112 0000000000000060 0001 JIZ.$$TRE|Lab_failed
113 0000000000000056 0001 ASA.validate|$$TRE|$$RES
114 0000000000000058 0001 JIZ.$$RES|Lab_failed
115 0000000000000060 0001 ASA.gty|$$TRE|$$TYP
116 0000000000000082 0001 JIV.$$TYP!i|Lab_failed
117 0000000000000042 0001 ASA.end|$$TRE
118 0000000000000055 0001 ASA.validate|$$TRE|$$RES
119 0000000000000056 0001 JNZ.$$RES|Lab_failed
120 0000000000000002 0001
121 0000000000000002 0001
122 0000000000000023 0001 VAR.$$MSG=(3) ASA.new/validate/end - Extended float type
123 0000000000000073 0001 ASA.new|$$TRE|f
124 0000000000000058 0001 JIZ.$$TRE|Lab_failed
125 0000000000000056 0001 ASA.validate|$$TRE|$$RES
126 0000000000000057 0001 JIZ.$$RES|Lab_failed
127 0000000000000058 0001 ASA.gty|$$TRE|$$TYP
128 0000000000000080 0001 JIV.$$TYP!f|Lab_failed
129 0000000000000039 0001 ASA.end|$$TRE
130 0000000000000054 0001 ASA.validate|$$TRE|$$RES
131 0000000000000055 0001 JNZ.$$RES|Lab_failed
132 0000000000000002 0001
133 0000000000000002 0001
134 0000000000000021 0001 VAR.$$MSG=(4) ASA.validate with invalid handle
135 0000000000000021 0001 VAR.$$TRE=12345
136 0000000000000068 0001 ASA.validate|$$TRE|$$RES
137 0000000000000055 0001 JNZ.$$RES|Lab_failed
138 0000000000000015 0001
...
143 0000000000000000 0000
144 0000000000000021 0001 VAR.$$MSG=(5) Basic set/get - String
145 0000000000000065 0001 ASA.new|$$TRE|s
146 0000000000000050 0001 ASA.set|$$TRE|Key1|Val1
147 0000000000000067 0001 ASA.get|$$TRE|Key1|$$VAL
148 0000000000000081 0001 JIV.$$VAL!Val1|Lab_failed
149 0000000000000060 0001 ASA.count|$$TRE|$$CNT
150 0000000000000072 0001 JIV.$$CNT!1|Lab_failed
151 0000000000000046 0001 ASA.end|$$TRE
152 0000000000000002 0001
153 0000000000000002 0001
154 0000000000000022 0001 VAR.$$MSG=(6) Basic set/get - Quad
155 0000000000000063 0001 ASA.new|$$TRE|i
156 0000000000000056 0001 ASA.set|$$TRE|Key1|123
157 0000000000000064 0001 ASA.get|$$TRE|Key1|$$VAL
158 0000000000000074 0001 JIV.$$VAL!123|Lab_failed
159 0000000000000056 0001 ASA.count|$$TRE|$$CNT
160 0000000000000070 0001 JIV.$$CNT!1|Lab_failed
161 0000000000000045 0001 ASA.end|$$TRE
162 0000000000000002 0001
163 0000000000000002 0001
164 0000000000000021 0001 VAR.$$MSG=(7) Basic set/get - Extended
165 0000000000000064 0001 ASA.new|$$TRE|f
166 0000000000000061 0001 ASA.set|$$TRE|Key1|1.23
167 0000000000000239 0001 ASA.get|$$TRE|Key1|$$VAL
168 0000000000000083 0001 JIV.$$VAL!1.23|Lab_failed
169 0000000000000261 0001 ASA.count|$$TRE|$$CNT
170 0000000000000111 0001 JIV.$$CNT!1|Lab_failed
171 0000000000000138 0001 ASA.end|$$TRE
172 0000000000000088 0001
173 0000000000000003 0001
174 0000000000000039 0001 VAR.$$MSG=(8) Multiple key-value pairs - String
175 0000000000000106 0001 ASA.new|$$TRE|s
176 0000000000000060 0001 ASA.set|$$TRE|KeyA|ValA
177 0000000000000055 0001 ASA.set|$$TRE|KeyB|ValB
178 0000000000000057 0001 ASA.set|$$TRE|KeyC|ValC
179 0000000000000069 0001 ASA.count|$$TRE|$$CNT
180 0000000000000093 0001 JIV.$$CNT!3|Lab_failed
181 0000000000000079 0001 ASA.get|$$TRE|KeyB|$$VAL
182 0000000000000103 0001 JIV.$$VAL!ValB|Lab_failed
183 0000000000000054 0001 ASA.set|$$TRE|KeyB|NewValB
184 0000000000000067 0001 ASA.count|$$TRE|$$CNT
185 0000000000000086 0001 JIV.$$CNT!3|Lab_failed
186 0000000000000078 0001 ASA.get|$$TRE|KeyB|$$VAL
187 0000000000000104 0001 JIV.$$VAL!NewValB|Lab_failed
188 0000000000000066 0001 ASA.end|$$TRE
189 0000000000000003 0001
190 0000000000000003 0001
191 0000000000000027 0001 VAR.$$MSG=(9) Multiple key-value pairs - Quad
192 0000000000000080 0001 ASA.new|$$TRE|i
193 0000000000000064 0001 ASA.set|$$TRE|KeyA|111
194 0000000000000062 0001 ASA.set|$$TRE|KeyB|222
195 0000000000000063 0001 ASA.set|$$TRE|KeyC|333
196 0000000000000067 0001 ASA.count|$$TRE|$$CNT
197 0000000000000087 0001 JIV.$$CNT!3|Lab_failed
198 0000000000000077 0001 ASA.get|$$TRE|KeyB|$$VAL
199 0000000000000089 0001 JIV.$$VAL!222|Lab_failed
200 0000000000000057 0001 ASA.set|$$TRE|KeyB|999
201 0000000000000067 0001 ASA.count|$$TRE|$$CNT
202 0000000000000086 0001 JIV.$$CNT!3|Lab_failed
203 0000000000000074 0001 ASA.get|$$TRE|KeyB|$$VAL
204 0000000000000089 0001 JIV.$$VAL!999|Lab_failed
205 0000000000000057 0001 ASA.end|$$TRE
206 0000000000000003 0001
207 0000000000000003 0001
208 0000000000000027 0001 VAR.$$MSG=(10) Multiple key-value pairs - Extended
209 0000000000000080 0001 ASA.new|$$TRE|f
210 0000000000000061 0001 ASA.set|$$TRE|KeyA|1.11
211 0000000000000062 0001 ASA.set|$$TRE|KeyB|2.22
212 0000000000000064 0001 ASA.set|$$TRE|KeyC|3.33
213 0000000000000068 0001 ASA.count|$$TRE|$$CNT
214 0000000000000086 0001 JIV.$$CNT!3|Lab_failed
215 0000000000000212 0001 ASA.get|$$TRE|KeyB|$$VAL
216 0000000000000212 0001 JIV.$$VAL!2.22|Lab_failed
217 0000000000000050 0001 ASA.set|$$TRE|KeyB|9.99
218 0000000000000058 0001 ASA.count|$$TRE|$$CNT
219 0000000000000075 0001 JIV.$$CNT!3|Lab_failed
220 0000000000000065 0001 ASA.get|$$TRE|KeyB|$$VAL
221 0000000000000079 0001 JIV.$$VAL!9.99|Lab_failed
222 0000000000000050 0001 ASA.end|$$TRE
223 0000000000000018 0001
224 0000000000000000 0000
225 0000000000000000 0000
226 0000000000000000 0000
227 0000000000000000 0000
228 0000000000000000 0000
229 0000000000000034 0001 VAR.$$MSG=(11) ASA.del - String
230 0000000000000074 0001 ASA.new|$$TRE|s
231 0000000000000046 0001 ASA.set|$$TRE|Key1|Val1
232 0000000000000046 0001 ASA.set|$$TRE|Key2|Val2
233 0000000000000058 0001 ASA.count|$$TRE|$$CNT
234 0000000000000075 0001 JIV.$$CNT!2|Lab_failed
235 0000000000000045 0001 ASA.del|$$TRE|Key1
236 0000000000000119 0001 ASA.got|$$TRE|Key1|$$RES
237 0000000000000062 0001 JNZ.$$RES|Lab_failed
238 0000000000000060 0001 ASA.count|$$TRE|$$CNT
239 0000000000000077 0001 JIV.$$CNT!1|Lab_failed
240 0000000000000068 0001 ASA.get|$$TRE|Key2|$$VAL
241 0000000000000086 0001 JIV.$$VAL!Val2|Lab_failed
242 0000000000000048 0001 ASA.end|$$TRE
243 0000000000000002 0001
244 0000000000000002 0001
245 0000000000000024 0001 VAR.$$MSG=(12) ASA.del - Quad
246 0000000000000067 0001 ASA.new|$$TRE|i
247 0000000000000053 0001 ASA.set|$$TRE|Key1|123
248 0000000000000054 0001 ASA.set|$$TRE|Key2|456
249 0000000000000058 0001 ASA.count|$$TRE|$$CNT
250 0000000000000075 0001 JIV.$$CNT!2|Lab_failed
251 0000000000000045 0001 ASA.del|$$TRE|Key1
252 0000000000000065 0001 ASA.got|$$TRE|Key1|$$RES
253 0000000000000060 0001 JNZ.$$RES|Lab_failed
254 0000000000000059 0001 ASA.count|$$TRE|$$CNT
255 0000000000000076 0001 JIV.$$CNT!1|Lab_failed
256 0000000000000065 0001 ASA.get|$$TRE|Key2|$$VAL
257 0000000000000077 0001 JIV.$$VAL!456|Lab_failed
258 0000000000000045 0001 ASA.end|$$TRE
259 0000000000000002 0001
260 0000000000000002 0001
261 0000000000000024 0001 VAR.$$MSG=(13) ASA.del - Extended
262 0000000000000067 0001 ASA.new|$$TRE|f
263 0000000000000052 0001 ASA.set|$$TRE|Key1|1.23
264 0000000000000052 0001 ASA.set|$$TRE|Key2|4.56
265 0000000000000058 0001 ASA.count|$$TRE|$$CNT
266 0000000000000075 0001 JIV.$$CNT!2|Lab_failed
267 0000000000000045 0001 ASA.del|$$TRE|Key1
268 0000000000000064 0001 ASA.got|$$TRE|Key1|$$RES
269 0000000000000060 0001 JNZ.$$RES|Lab_failed
270 0000000000000059 0001 ASA.count|$$TRE|$$CNT
271 0000000000000074 0001 JIV.$$CNT!1|Lab_failed
272 0000000000000064 0001 ASA.get|$$TRE|Key2|$$VAL
273 0000000000000077 0001 JIV.$$VAL!4.56|Lab_failed
274 0000000000000044 0001 ASA.end|$$TRE
275 0000000000000002 0001
276 0000000000000002 0001
277 0000000000000024 0001 VAR.$$MSG=(14) ASA.del nonexistent key - String
278 0000000000000065 0001 ASA.new|$$TRE|s
279 0000000000000046 0001 ASA.set|$$TRE|Key1|Val1
280 0000000000000056 0001 ASA.count|$$TRE|$$CNT
281 0000000000000074 0001 JIV.$$CNT!1|Lab_failed
282 0000000000000040 0001 ASA.del|$$TRE|NonExistent
283 0000000000000056 0001 ASA.count|$$TRE|$$CNT
284 0000000000000073 0001 JIV.$$CNT!1|Lab_failed
285 0000000000000043 0001 ASA.end|$$TRE
286 0000000000000016 0001
287 0000000000000000 0000
288 0000000000000000 0000
289 0000000000000000 0000
290 0000000000000000 0000
291 0000000000000000 0000
292 0000000000000023 0001 VAR.$$MSG=(15) ASA.clear - String
293 0000000000000065 0001 ASA.new|$$TRE|s
294 0000000000000045 0001 ASA.set|$$TRE|Key1|Val1
295 0000000000000044 0001 ASA.set|$$TRE|Key2|Val2
296 0000000000000054 0001 ASA.count|$$TRE|$$CNT
297 0000000000000070 0001 JIV.$$CNT!2|Lab_failed
298 0000000000000040 0001 ASA.clear|$$TRE
299 0000000000000053 0001 ASA.count|$$TRE|$$CNT
300 0000000000000057 0001 JNZ.$$CNT|Lab_failed
301 0000000000000060 0001 ASA.got|$$TRE|Key1|$$RES
302 0000000000000055 0001 JNZ.$$RES|Lab_failed
303 0000000000000038 0001 ASA.end|$$TRE
304 0000000000000002 0001
305 0000000000000002 0001
306 0000000000000021 0001 VAR.$$MSG=(16) ASA.clear - Quad
307 0000000000000063 0001 ASA.new|$$TRE|i
308 0000000000000049 0001 ASA.set|$$TRE|Key1|123
309 0000000000000048 0001 ASA.set|$$TRE|Key2|456
310 0000000000000054 0001 ASA.count|$$TRE|$$CNT
311 0000000000000072 0001 JIV.$$CNT!2|Lab_failed
312 0000000000000038 0001 ASA.clear|$$TRE
313 0000000000000054 0001 ASA.count|$$TRE|$$CNT
314 0000000000000056 0001 JNZ.$$CNT|Lab_failed
315 0000000000000061 0001 ASA.got|$$TRE|Key1|$$RES
316 0000000000000055 0001 JNZ.$$RES|Lab_failed
317 0000000000000038 0001 ASA.end|$$TRE
318 0000000000000002 0001
319 0000000000000002 0001
320 0000000000000022 0001 VAR.$$MSG=(17) ASA.clear - Extended
321 0000000000000061 0001 ASA.new|$$TRE|f
322 0000000000000049 0001 ASA.set|$$TRE|Key1|1.23
323 0000000000000049 0001 ASA.set|$$TRE|Key2|4.56
324 0000000000000054 0001 ASA.count|$$TRE|$$CNT
325 0000000000000071 0001 JIV.$$CNT!2|Lab_failed
326 0000000000000038 0001 ASA.clear|$$TRE
327 0000000000000056 0001 ASA.count|$$TRE|$$CNT
328 0000000000000057 0001 JNZ.$$CNT|Lab_failed
329 0000000000000060 0001 ASA.got|$$TRE|Key1|$$RES
330 0000000000000055 0001 JNZ.$$RES|Lab_failed
331 0000000000000038 0001 ASA.end|$$TRE
332 0000000000000014 0001
333 0000000000000000 0000
334 0000000000000000 0000
335 0000000000000000 0000
336 0000000000000000 0000
337 0000000000000000 0000
338 0000000000000023 0001 VAR.$$MSG=(18) ASA.first/getval - String
339 0000000000000061 0001 ASA.new|$$TRE|s
340 0000000000000043 0001 ASA.set|$$TRE|KeyA|ValA
341 0000000000000043 0001 ASA.set|$$TRE|KeyB|ValB
342 0000000000000045 0001 ASA.set|$$TRE|KeyC|ValC
343 0000000000000057 0001 ASA.first|$$TRE|$$NOD
344 0000000000000065 0001 JIZ.$$NOD|Lab_failed
345 0000000000000072 0001 ASA.getkey|$$TRE|$$NOD|$$KEY
346 0000000000000084 0001 JIV.$$KEY!KeyA|Lab_failed
347 0000000000000065 0001 ASA.getval|$$TRE|$$NOD|$$VAL
348 0000000000000079 0001 JIV.$$VAL!ValA|Lab_failed
349 0000000000000048 0001 ASA.end|$$TRE
350 0000000000000002 0001
351 0000000000000002 0001
352 0000000000000022 0001 VAR.$$MSG=(19) ASA.first/getval - Quad
353 0000000000000062 0001 ASA.new|$$TRE|i
354 0000000000000048 0001 ASA.set|$$TRE|KeyA|111
355 0000000000000048 0001 ASA.set|$$TRE|KeyB|222
356 0000000000000050 0001 ASA.set|$$TRE|KeyC|333
357 0000000000000056 0001 ASA.first|$$TRE|$$NOD
358 0000000000000061 0001 JIZ.$$NOD|Lab_failed
359 0000000000000066 0001 ASA.getkey|$$TRE|$$NOD|$$KEY
360 0000000000000081 0001 JIV.$$KEY!KeyA|Lab_failed
361 0000000000000064 0001 ASA.getval|$$TRE|$$NOD|$$VAL
362 0000000000000072 0001 JIV.$$VAL!111|Lab_failed
363 0000000000000045 0001 ASA.end|$$TRE
364 0000000000000002 0001
365 0000000000000002 0001
366 0000000000000023 0001 VAR.$$MSG=(20) ASA.first/getval - Extended
367 0000000000000062 0001 ASA.new|$$TRE|f
368 0000000000000048 0001 ASA.set|$$TRE|KeyA|1.11
369 0000000000000048 0001 ASA.set|$$TRE|KeyB|2.22
370 0000000000000049 0001 ASA.set|$$TRE|KeyC|3.33
371 0000000000000057 0001 ASA.first|$$TRE|$$NOD
372 0000000000000060 0001 JIZ.$$NOD|Lab_failed
373 0000000000000066 0001 ASA.getkey|$$TRE|$$NOD|$$KEY
374 0000000000000081 0001 JIV.$$KEY!KeyA|Lab_failed
375 0000000000000064 0001 ASA.getval|$$TRE|$$NOD|$$VAL
376 0000000000000073 0001 JIV.$$VAL!1.11|Lab_failed
377 0000000000000045 0001 ASA.end|$$TRE
378 0000000000000002 0001
379 0000000000000002 0001
380 0000000000000022 0001 VAR.$$MSG=(21) ASA.last - String
381 0000000000000061 0001 ASA.new|$$TRE|s
382 0000000000000044 0001 ASA.set|$$TRE|KeyA|ValA
383 0000000000000042 0001 ASA.set|$$TRE|KeyB|ValB
384 0000000000000044 0001 ASA.set|$$TRE|KeyC|ValC
385 0000000000000055 0001 ASA.last|$$TRE|$$NOD
386 0000000000000060 0001 JIZ.$$NOD|Lab_failed
387 0000000000000064 0001 ASA.getkey|$$TRE|$$NOD|$$KEY
388 0000000000000080 0001 JIV.$$KEY!KeyC|Lab_failed
389 0000000000000061 0001 ASA.getval|$$TRE|$$NOD|$$VAL
390 0000000000000076 0001 JIV.$$VAL!ValC|Lab_failed
391 0000000000000047 0001 ASA.end|$$TRE
392 0000000000000002 0001
393 0000000000000002 0001
394 0000000000000023 0001 VAR.$$MSG=(22) ASA.last - Quad
395 0000000000000062 0001 ASA.new|$$TRE|i
396 0000000000000048 0001 ASA.set|$$TRE|KeyA|111
397 0000000000000049 0001 ASA.set|$$TRE|KeyB|222
398 0000000000000050 0001 ASA.set|$$TRE|KeyC|333
399 0000000000000055 0001 ASA.last|$$TRE|$$NOD
400 0000000000000060 0001 JIZ.$$NOD|Lab_failed
401 0000000000000064 0001 ASA.getkey|$$TRE|$$NOD|$$KEY
402 0000000000000080 0001 JIV.$$KEY!KeyC|Lab_failed
403 0000000000000061 0001 ASA.getval|$$TRE|$$NOD|$$VAL
404 0000000000000072 0001 JIV.$$VAL!333|Lab_failed
405 0000000000000045 0001 ASA.end|$$TRE
406 0000000000000002 0001
407 0000000000000002 0001
408 0000000000000022 0001 VAR.$$MSG=(23) ASA.next/prev - String
409 0000000000000061 0001 ASA.new|$$TRE|s
410 0000000000000043 0001 ASA.set|$$TRE|KeyA|ValA
411 0000000000000043 0001 ASA.set|$$TRE|KeyB|ValB
412 0000000000000043 0001 ASA.set|$$TRE|KeyC|ValC
413 0000000000000055 0001 ASA.first|$$TRE|$$NOD
414 0000000000000065 0001 ASA.next|$$TRE|$$NOD|$$NXT
415 0000000000000062 0001 JIZ.$$NXT|Lab_failed
416 0000000000000066 0001 ASA.getkey|$$TRE|$$NXT|$$KEY
417 0000000000000080 0001 JIV.$$KEY!KeyB|Lab_failed
418 0000000000000065 0001 ASA.next|$$TRE|$$NXT|$$NX2
419 0000000000000062 0001 JIZ.$$NX2|Lab_failed
420 0000000000000065 0001 ASA.getkey|$$TRE|$$NX2|$$KEY
421 0000000000000202 0001 JIV.$$KEY!KeyC|Lab_failed
422 0000000000000071 0001 ASA.prev|$$TRE|$$NX2|$$PRV
423 0000000000000065 0001 JIZ.$$PRV|Lab_failed
424 0000000000000072 0001 ASA.getkey|$$TRE|$$PRV|$$KEY
425 0000000000000086 0001 JIV.$$KEY!KeyB|Lab_failed
426 0000000000000052 0001 ASA.end|$$TRE
427 0000000000000003 0001
428 0000000000000002 0001
429 0000000000000025 0001 VAR.$$MSG=(24) ASA.next/prev - Quad
430 0000000000000067 0001 ASA.new|$$TRE|i
431 0000000000000052 0001 ASA.set|$$TRE|KeyA|111
432 0000000000000052 0001 ASA.set|$$TRE|KeyB|222
433 0000000000000053 0001 ASA.set|$$TRE|KeyC|333
434 0000000000000060 0001 ASA.first|$$TRE|$$NOD
435 0000000000000068 0001 ASA.next|$$TRE|$$NOD|$$NXT
436 0000000000000066 0001 JIZ.$$NXT|Lab_failed
437 0000000000000069 0001 ASA.getkey|$$TRE|$$NXT|$$KEY
438 0000000000000086 0001 JIV.$$KEY!KeyB|Lab_failed
439 0000000000000067 0001 ASA.getval|$$TRE|$$NXT|$$VAL
440 0000000000000077 0001 JIV.$$VAL!222|Lab_failed
441 0000000000000069 0001 ASA.next|$$TRE|$$NXT|$$NX2
442 0000000000000067 0001 JIZ.$$NX2|Lab_failed
443 0000000000000068 0001 ASA.getkey|$$TRE|$$NX2|$$KEY
444 0000000000000085 0001 JIV.$$KEY!KeyC|Lab_failed
445 0000000000000070 0001 ASA.prev|$$TRE|$$NX2|$$PRV
446 0000000000000068 0001 JIZ.$$PRV|Lab_failed
447 0000000000000068 0001 ASA.getkey|$$TRE|$$PRV|$$KEY
448 0000000000000085 0001 JIV.$$KEY!KeyB|Lab_failed
449 0000000000000048 0001 ASA.end|$$TRE
450 0000000000000002 0001
451 0000000000000002 0001
452 0000000000000025 0001 VAR.$$MSG=(25) ASA.next/prev boundaries - String
453 0000000000000067 0001 ASA.new|$$TRE|s
454 0000000000000047 0001 ASA.set|$$TRE|KeyA|ValA
455 0000000000000046 0001 ASA.set|$$TRE|KeyB|ValB
456 0000000000000047 0001 ASA.set|$$TRE|KeyC|ValC
457 0000000000000058 0001 ASA.last|$$TRE|$$NOD
458 0000000000000067 0001 ASA.next|$$TRE|$$NOD|$$NXT
459 0000000000000065 0001 JNZ.$$NXT|Lab_failed
460 0000000000000060 0001 ASA.first|$$TRE|$$NOD
461 0000000000000068 0001 ASA.prev|$$TRE|$$NOD|$$PRV
462 0000000000000066 0001 JNZ.$$PRV|Lab_failed
463 0000000000000050 0001 ASA.end|$$TRE
464 0000000000000016 0001
465 0000000000000000 0000
466 0000000000000000 0000
467 0000000000000000 0000
468 0000000000000000 0000
469 0000000000000000 0000
470 0000000000000023 0001 VAR.$$MSG=(26) ASA.setval - String
471 0000000000000067 0001 ASA.new|$$TRE|s
472 0000000000000045 0001 ASA.set|$$TRE|Key1|Val1
473 0000000000000059 0001 ASA.first|$$TRE|$$NOD
474 0000000000000049 0001 ASA.setval|$$TRE|$$NOD|NewVal
475 0000000000000067 0001 ASA.get|$$TRE|Key1|$$VAL
476 0000000000000086 0001 JIV.$$VAL!NewVal|Lab_failed
477 0000000000000047 0001 ASA.end|$$TRE
478 0000000000000002 0001
479 0000000000000002 0001
480 0000000000000023 0001 VAR.$$MSG=(27) ASA.setval - Quad
481 0000000000000067 0001 ASA.new|$$TRE|i
482 0000000000000052 0001 ASA.set|$$TRE|Key1|123
483 0000000000000059 0001 ASA.first|$$TRE|$$NOD
484 0000000000000048 0001 ASA.setval|$$TRE|$$NOD|456
485 0000000000000063 0001 ASA.get|$$TRE|Key1|$$VAL
486 0000000000000072 0001 JIV.$$VAL!456|Lab_failed
487 0000000000000042 0001 ASA.end|$$TRE
488 0000000000000002 0001
489 0000000000000002 0001
490 0000000000000022 0001 VAR.$$MSG=(28) ASA.setval - Extended
491 0000000000000063 0001 ASA.new|$$TRE|f
492 0000000000000049 0001 ASA.set|$$TRE|Key1|1.23
493 0000000000000055 0001 ASA.first|$$TRE|$$NOD
494 0000000000000045 0001 ASA.setval|$$TRE|$$NOD|4.56
495 0000000000000062 0001 ASA.get|$$TRE|Key1|$$VAL
496 0000000000000075 0001 JIV.$$VAL!4.56|Lab_failed
497 0000000000000042 0001 ASA.end|$$TRE
498 0000000000000014 0001
499 0000000000000000 0000
500 0000000000000000 0000
501 0000000000000000 0000
502 0000000000000000 0000
503 0000000000000000 0000
504 0000000000000021 0001 VAR.$$MSG=(29) ASA.got - String
505 0000000000000063 0001 ASA.new|$$TRE|s
506 0000000000000043 0001 ASA.set|$$TRE|Key1|Val1
507 0000000000000061 0001 ASA.get|$$TRE|Key1|$$RES
508 0000000000000077 0001 JIV.$$RES!Val1|Lab_failed
509 0000000000000063 0001 ASA.got|$$TRE|KeyNonExist|$$RES
510 0000000000000056 0001 JNZ.$$RES|Lab_failed
511 0000000000000043 0001 ASA.end|$$TRE
512 0000000000000002 0001
513 0000000000000002 0001
514 0000000000000021 0001 VAR.$$MSG=(30) ASA.got - Quad
515 0000000000000065 0001 ASA.new|$$TRE|i
516 0000000000000048 0001 ASA.set|$$TRE|Key1|123
517 0000000000000060 0001 ASA.get|$$TRE|Key1|$$RES
518 0000000000000071 0001 JIV.$$RES!123|Lab_failed
519 0000000000000063 0001 ASA.got|$$TRE|KeyNonExist|$$RES
520 0000000000000055 0001 JNZ.$$RES|Lab_failed
521 0000000000000042 0001 ASA.end|$$TRE
522 0000000000000002 0001
523 0000000000000002 0001
524 0000000000000022 0001 VAR.$$MSG=(31) ASA.got - Extended
525 0000000000000062 0001 ASA.new|$$TRE|f
526 0000000000000049 0001 ASA.set|$$TRE|Key1|1.23
527 0000000000000059 0001 ASA.get|$$TRE|Key1|$$RES
528 0000000000000073 0001 JIV.$$RES!1.23|Lab_failed
529 0000000000000062 0001 ASA.got|$$TRE|KeyNonExist|$$RES
530 0000000000000055 0001 JNZ.$$RES|Lab_failed
531 0000000000000042 0001 ASA.end|$$TRE
532 0000000000000014 0001
533 0000000000000000 0000
534 0000000000000000 0000
535 0000000000000000 0000
536 0000000000000000 0000
537 0000000000000000 0000
538 0000000000000021 0001 VAR.$$MSG=(32) ASA.clone - String
539 0000000000000061 0001 ASA.new|$$TRE|s
540 0000000000000043 0001 ASA.set|$$TRE|Key1|Val1
541 0000000000000073 0001 ASA.clone|$$TRE|$$TR2
542 0000000000000067 0001 JIZ.$$TR2|Lab_failed
543 0000000000000062 0001 ASA.validate|$$TR2|$$RES
544 0000000000000057 0001 JIZ.$$RES|Lab_failed
545 0000000000000062 0001 ASA.gty|$$TR2|$$TYP
546 0000000000000078 0001 JIV.$$TYP!s|Lab_failed
547 0000000000000067 0001 ASA.get|$$TR2|Key1|$$VAL
548 0000000000000077 0001 JIV.$$VAL!Val1|Lab_failed
549 0000000000000043 0001 ASA.set|$$TRE|Key1|NewVal
550 0000000000000064 0001 ASA.get|$$TR2|Key1|$$VAL
551 0000000000000076 0001 JIV.$$VAL!Val1|Lab_failed
552 0000000000000043 0001 ASA.end|$$TRE
553 0000000000000045 0001 ASA.end|$$TR2
554 0000000000000002 0001
555 0000000000000002 0001
556 0000000000000021 0001 VAR.$$MSG=(33) ASA.clone - Quad
557 0000000000000063 0001 ASA.new|$$TRE|i
558 0000000000000048 0001 ASA.set|$$TRE|Key1|123
559 0000000000000068 0001 ASA.clone|$$TRE|$$TR2
560 0000000000000064 0001 JIZ.$$TR2|Lab_failed
561 0000000000000060 0001 ASA.validate|$$TR2|$$RES
562 0000000000000057 0001 JIZ.$$RES|Lab_failed
563 0000000000000060 0001 ASA.gty|$$TR2|$$TYP
564 0000000000000077 0001 JIV.$$TYP!i|Lab_failed
565 0000000000000065 0001 ASA.get|$$TR2|Key1|$$VAL
566 0000000000000072 0001 JIV.$$VAL!123|Lab_failed
567 0000000000000047 0001 ASA.set|$$TRE|Key1|456
568 0000000000000064 0001 ASA.get|$$TR2|Key1|$$VAL
569 0000000000000070 0001 JIV.$$VAL!123|Lab_failed
570 0000000000000042 0001 ASA.end|$$TRE
571 0000000000000044 0001 ASA.end|$$TR2
572 0000000000000002 0001
573 0000000000000002 0001
574 0000000000000022 0001 VAR.$$MSG=(34) ASA.clone - Extended
575 0000000000000062 0001 ASA.new|$$TRE|f
576 0000000000000049 0001 ASA.set|$$TRE|Key1|1.23
577 0000000000000068 0001 ASA.clone|$$TRE|$$TR2
578 0000000000000064 0001 JIZ.$$TR2|Lab_failed
579 0000000000000060 0001 ASA.validate|$$TR2|$$RES
580 0000000000000057 0001 JIZ.$$RES|Lab_failed
581 0000000000000061 0001 ASA.gty|$$TR2|$$TYP
582 0000000000000077 0001 JIV.$$TYP!f|Lab_failed
583 0000000000000065 0001 ASA.get|$$TR2|Key1|$$VAL
584 0000000000000073 0001 JIV.$$VAL!1.23|Lab_failed
585 0000000000000047 0001 ASA.set|$$TRE|Key1|4.56
586 0000000000000063 0001 ASA.get|$$TR2|Key1|$$VAL
587 0000000000000072 0001 JIV.$$VAL!1.23|Lab_failed
588 0000000000000042 0001 ASA.end|$$TRE
589 0000000000000045 0001 ASA.end|$$TR2
590 0000000000000014 0001
591 0000000000000000 0000
592 0000000000000000 0000
593 0000000000000000 0000
594 0000000000000000 0000
595 0000000000000000 0000
596 0000000000000023 0001 VAR.$$MSG=(35) ASA.store/restore - String
597 0000000000000063 0001 ASA.new|$$TRE|s
598 0000000000000044 0001 ASA.set|$$TRE|Key1|Val1
599 0000000000000043 0001 ASA.set|$$TRE|Key2|Val2
600 0000000000000114 0001 ASA.store|$$TRE|$$STR
601 0000000000000046 0001 ASA.end|$$TRE
602 0000000000000064 0001 ASA.new|$$TR2|s
603 0000000000000123 0001 ASA.restore|$$TR2|$$STR
604 0000000000000059 0001 ASA.count|$$TR2|$$CNT
605 0000000000000071 0001 JIV.$$CNT!2|Lab_failed
606 0000000000000065 0001 ASA.get|$$TR2|Key1|$$VAL
607 0000000000000078 0001 JIV.$$VAL!Val1|Lab_failed
608 0000000000000065 0001 ASA.get|$$TR2|Key2|$$VAL
609 0000000000000076 0001 JIV.$$VAL!Val2|Lab_failed
610 0000000000000048 0001 ASA.end|$$TR2
611 0000000000000002 0001
612 0000000000000002 0001
613 0000000000000023 0001 VAR.$$MSG=(36) ASA.store/restore - Quad
614 0000000000000064 0001 ASA.new|$$TRE|i
615 0000000000000048 0001 ASA.set|$$TRE|Key1|123
616 0000000000000048 0001 ASA.set|$$TRE|Key2|456
617 0000000000000101 0001 ASA.store|$$TRE|$$STR
618 0000000000000044 0001 ASA.end|$$TRE
619 0000000000000064 0001 ASA.new|$$TR2|i
620 0000000000000105 0001 ASA.restore|$$TR2|$$STR
621 0000000000000060 0001 ASA.count|$$TR2|$$CNT
622 0000000000000071 0001 JIV.$$CNT!2|Lab_failed
623 0000000000000065 0001 ASA.get|$$TR2|Key1|$$VAL
624 0000000000000072 0001 JIV.$$VAL!123|Lab_failed
625 0000000000000065 0001 ASA.get|$$TR2|Key2|$$VAL
626 0000000000000071 0001 JIV.$$VAL!456|Lab_failed
627 0000000000000047 0001 ASA.end|$$TR2
628 0000000000000002 0001
629 0000000000000002 0001
630 0000000000000022 0001 VAR.$$MSG=(37) ASA.store/restore - Extended
631 0000000000000062 0001 ASA.new|$$TRE|f
632 0000000000000049 0001 ASA.set|$$TRE|Key1|1.23
633 0000000000000049 0001 ASA.set|$$TRE|Key2|4.56
634 0000000000000101 0001 ASA.store|$$TRE|$$STR
635 0000000000000044 0001 ASA.end|$$TRE
636 0000000000000064 0001 ASA.new|$$TR2|f
637 0000000000000106 0001 ASA.restore|$$TR2|$$STR
638 0000000000000059 0001 ASA.count|$$TR2|$$CNT
639 0000000000000071 0001 JIV.$$CNT!2|Lab_failed
640 0000000000000065 0001 ASA.get|$$TR2|Key1|$$VAL
641 0000000000000073 0001 JIV.$$VAL!1.23|Lab_failed
642 0000000000000064 0001 ASA.get|$$TR2|Key2|$$VAL
643 0000000000000072 0001 JIV.$$VAL!4.56|Lab_failed
644 0000000000000047 0001 ASA.end|$$TR2
645 0000000000000015 0001
646 0000000000000000 0000
647 0000000000000000 0000
648 0000000000000000 0000
649 0000000000000000 0000
650 0000000000000000 0000
651 0000000000000023 0001 VAR.$$MSG=(38) ASA.filestore/filerestore - String
652 0000000000000063 0001 ASA.new|$$TRE|s
653 0000000000000043 0001 ASA.set|$$TRE|Key1|Val1
654 0000000000000043 0001 ASA.set|$$TRE|Key2|Val2
655 0000000000007381 0001 ASA.filestore|$$TRE|test_s.dat
656 0000000000000184 0001 ASA.end|$$TRE
657 0000000000000100 0001 ASA.new|$$TR2|s
658 0000000000003384 0001 ASA.filerestore|$$TR2|test_s.dat
659 0000000000000145 0001 ASA.count|$$TR2|$$CNT
660 0000000000000106 0001 JIV.$$CNT!2|Lab_failed
661 0000000000000086 0001 ASA.get|$$TR2|Key1|$$VAL
662 0000000000000101 0001 JIV.$$VAL!Val1|Lab_failed
663 0000000000000070 0001 ASA.end|$$TR2
664 0000000000000003 0001
665 0000000000000002 0001
666 0000000000000031 0001 VAR.$$MSG=(39) ASA.filestore/filerestore - Quad
667 0000000000000080 0001 ASA.new|$$TRE|i
668 0000000000000065 0001 ASA.set|$$TRE|Key1|123
669 0000000000000054 0001 ASA.set|$$TRE|Key2|456
670 0000000000005787 0001 ASA.filestore|$$TRE|test_i.dat
671 0000000000000176 0001 ASA.end|$$TRE
672 0000000000000113 0001 ASA.new|$$TR2|i
673 0000000000003363 0001 ASA.filerestore|$$TR2|test_i.dat
674 0000000000000158 0001 ASA.count|$$TR2|$$CNT
675 0000000000000115 0001 JIV.$$CNT!2|Lab_failed
676 0000000000000090 0001 ASA.get|$$TR2|Key1|$$VAL
677 0000000000000093 0001 JIV.$$VAL!123|Lab_failed
678 0000000000000075 0001 ASA.end|$$TR2
679 0000000000000003 0001
680 0000000000000002 0001
681 0000000000000034 0001 VAR.$$MSG=(40) ASA.filestore/filerestore - Extended
682 0000000000000063 0001 VAR.$$PAT=?path\test_f.dat
683 0000000000000089 0001 ASA.new|$$TRE|f
684 0000000000000067 0001 ASA.set|$$TRE|Key1|1.23
685 0000000000000062 0001 ASA.set|$$TRE|Key2|4.56
686 0000000000561360 0001 DEL.$$PAT
687 0000000000006130 0001 ASA.filestore|$$TRE|$$PAT
688 0000000000000211 0001 ASA.end|$$TRE
689 0000000000002200 0001 NEF.$$PAT
690 0000000000000000 0000 GTO.Lab_failed
691 0000000000000011 0001 EIF.
692 0000000000000177 0001 ASA.new|$$TR2|f
693 0000000000567634 0001 ASA.filerestore|$$TR2|$$PAT
694 0000000000000272 0001 ASA.count|$$TR2|$$CNT
695 0000000000000126 0001 JIV.$$CNT!2|Lab_failed
696 0000000000000108 0001 ASA.get|$$TR2|Key2|$$VAL
697 0000000000000093 0001 JIV.$$VAL!4.56|Lab_failed
698 0000000000000088 0001 ASA.end|$$TR2
699 0000000000000023 0001
700 0000000000000000 0000
701 0000000000000000 0000
702 0000000000000000 0000
703 0000000000000000 0000
704 0000000000000000 0000
705 0000000000000033 0001 VAR.$$MSG=(41) ASA.endall - Multiple trees
706 0000000000000108 0001 ASA.new|$$TR1|s
707 0000000000000095 0001 ASA.new|$$TR2|i
708 0000000000000085 0001 ASA.new|$$TR3|f
709 0000000000000076 0001 ASA.validate|$$TR1|$$RES
710 0000000000000078 0001 JIZ.$$RES|Lab_failed
711 0000000000000077 0001 ASA.validate|$$TR2|$$RES
712 0000000000000068 0001 JIZ.$$RES|Lab_failed
713 0000000000000072 0001 ASA.validate|$$TR3|$$RES
714 0000000000000069 0001 JIZ.$$RES|Lab_failed
715 0000000000000072 0001 ASA.endall
716 0000000000000073 0001 ASA.validate|$$TR1|$$RES
717 0000000000000068 0001 JNZ.$$RES|Lab_failed
718 0000000000000070 0001 ASA.validate|$$TR2|$$RES
719 0000000000000066 0001 JNZ.$$RES|Lab_failed
720 0000000000000072 0001 ASA.validate|$$TR3|$$RES
721 0000000000000066 0001 JNZ.$$RES|Lab_failed
722 0000000000000017 0001
723 0000000000000000 0000
724 0000000000000000 0000
725 0000000000000000 0000
726 0000000000000000 0000
727 0000000000000000 0000
728 0000000000000026 0001 VAR.$$MSG=(42) Empty keys - String
729 0000000000000077 0001 ASA.new|$$TRE|s
730 0000000000000055 0001 ASA.set|$$TRE||EmptyKeyValue
731 0000000000000071 0001 ASA.got|$$TRE||$$RES
732 0000000000000070 0001 JIZ.$$RES|Lab_failed
733 0000000000000078 0001 ASA.get|$$TRE||$$VAL
734 0000000000000120 0001 JIV.$$VAL!EmptyKeyValue|Lab_failed
735 0000000000000068 0001 ASA.count|$$TRE|$$CNT
736 0000000000000084 0001 JIV.$$CNT!1|Lab_failed
737 0000000000000055 0001 ASA.end|$$TRE
738 0000000000000003 0001
739 0000000000000002 0001
740 0000000000000026 0001 VAR.$$MSG=(43) Empty keys - Quad
741 0000000000000074 0001 ASA.new|$$TRE|i
742 0000000000000058 0001 ASA.set|$$TRE||123
743 0000000000000069 0001 ASA.got|$$TRE||$$RES
744 0000000000000068 0001 JIZ.$$RES|Lab_failed
745 0000000000000071 0001 ASA.get|$$TRE||$$VAL
746 0000000000000085 0001 JIV.$$VAL!123|Lab_failed
747 0000000000000055 0001 ASA.end|$$TRE
748 0000000000000003 0001
749 0000000000000003 0001
750 0000000000000026 0001 VAR.$$MSG=(44) Special character keys - String
751 0000000000000073 0001 ASA.new|$$TRE|s
752 0000000000000054 0001 ASA.set|$$TRE|Key@#$|SpecialValue
753 0000000000000054 0001 ASA.set|$$TRE|Key 123|SpaceValue
754 0000000000000073 0001 ASA.got|$$TRE|Key@#$|$$RES
755 0000000000000069 0001 JIZ.$$RES|Lab_failed
756 0000000000000076 0001 ASA.get|$$TRE|Key 123|$$VAL
757 0000000000000099 0001 JIV.$$VAL!SpaceValue|Lab_failed
758 0000000000000054 0001 ASA.end|$$TRE
759 0000000000000003 0001
760 0000000000000002 0001
761 0000000000000027 0001 VAR.$$MSG=(45) Non-existent key retrieval - All types
762 0000000000000078 0001 ASA.new|$$TRE|s
763 0000000000000071 0001 ASA.get|$$TRE|NonExistent|$$VAL
764 0000000000000056 0001 JIS.$$VAL|Lab_failed
765 0000000000000051 0001 ASA.end|$$TRE
766 0000000000000081 0001 ASA.new|$$TRE|i
767 0000000000000079 0001 ASA.get|$$TRE|NonExistent|$$VAL
768 0000000000000075 0001 JNZ.$$VAL|Lab_failed
769 0000000000000049 0001 ASA.end|$$TRE
770 0000000000000078 0001 ASA.new|$$TRE|f
771 0000000000000078 0001 ASA.get|$$TRE|NonExistent|$$VAL
772 0000000000000073 0001 JNZ.$$VAL|Lab_failed
773 0000000000000047 0001 ASA.end|$$TRE
774 0000000000000018 0001
775 0000000000000000 0000
776 0000000000000000 0000
777 0000000000000000 0000
778 0000000000000000 0000
779 0000000000000000 0000
780 0000000000000028 0001 VAR.$$MSG=(46) Complex sequence - String
781 0000000000000078 0001 ASA.new|$$TRE|s
782 0000000000000056 0001 ASA.set|$$TRE|KeyC|ValC
783 0000000000000053 0001 ASA.set|$$TRE|KeyA|ValA
784 0000000000000054 0001 ASA.set|$$TRE|KeyB|ValB
785 0000000000000069 0001 ASA.first|$$TRE|$$NOD
786 0000000000000084 0001 ASA.getkey|$$TRE|$$NOD|$$KEY
787 0000000000000106 0001 JIV.$$KEY!KeyA|Lab_failed
788 0000000000000052 0001 ASA.del|$$TRE|KeyB
789 0000000000000068 0001 ASA.first|$$TRE|$$NOD
790 0000000000000077 0001 ASA.next|$$TRE|$$NOD|$$NXT
791 0000000000000079 0001 ASA.getkey|$$TRE|$$NXT|$$KEY
792 0000000000000098 0001 JIV.$$KEY!KeyC|Lab_failed
793 0000000000000091 0001 ASA.clone|$$TRE|$$TR2
794 0000000000000047 0001 ASA.set|$$TRE|KeyD|ValD
795 0000000000000059 0001 ASA.count|$$TRE|$$CNT
796 0000000000000079 0001 JIV.$$CNT!3|Lab_failed
797 0000000000000063 0001 ASA.count|$$TR2|$$CNT
798 0000000000000075 0001 JIV.$$CNT!2|Lab_failed
799 0000000000000152 0001 ASA.store|$$TRE|$$STR
800 0000000000000046 0001 ASA.clear|$$TRE
801 0000000000000059 0001 ASA.count|$$TRE|$$CNT
802 0000000000000062 0001 JNZ.$$CNT|Lab_failed
803 0000000000000152 0001 ASA.restore|$$TRE|$$STR
804 0000000000000060 0001 ASA.count|$$TRE|$$CNT
805 0000000000000077 0001 JIV.$$CNT!3|Lab_failed
806 0000000000000052 0001 ASA.end|$$TRE
807 0000000000000052 0001 ASA.end|$$TR2
808 0000000000000016 0001
809 0000000000000000 0000
810 0000000000000000 0000
811 0000000000000000 0000
812 0000000000000000 0000
813 0000000000000000 0000
814 0000000000000025 0001 VAR.$$MSG=(47) Larger tree - String
815 0000000000000068 0001 ASA.new|$$TRE|s
816 0000000000000046 0001 ASA.set|$$TRE|Key0|Val0
817 0000000000000045 0001 ASA.set|$$TRE|Key1|Val1
818 0000000000000047 0001 ASA.set|$$TRE|Key2|Val2
819 0000000000000047 0001 ASA.set|$$TRE|Key3|Val3
820 0000000000000048 0001 ASA.set|$$TRE|Key4|Val4
821 0000000000000048 0001 ASA.set|$$TRE|Key5|Val5
822 0000000000000047 0001 ASA.set|$$TRE|Key6|Val6
823 0000000000000047 0001 ASA.set|$$TRE|Key7|Val7
824 0000000000000048 0001 ASA.set|$$TRE|Key8|Val8
825 0000000000000049 0001 ASA.set|$$TRE|Key9|Val9
826 0000000000000058 0001 ASA.count|$$TRE|$$CNT
827 0000000000000078 0001 JIV.$$CNT!10|Lab_failed
828 0000000000000063 0001 ASA.first|$$TRE|$$NOD
829 0000000000000023 0001 VAR.$$CNT=1
830 0000000000000005 0010 :next_loop
831 0000000000000173 0010 ASA.next|$$TRE|$$NOD|$$NXT
832 0000000000000750 0010 PRT.$$NXT
833 0000000000000151 0010 JIZ.$$NXT|done_loop
834 0000000000000071 0009 VAR.$$NOD=$$NXT
835 0000000000000077 0009 VIC.$$CNT
836 0000000000000051 0009 GTO.next_loop
837 0000000000000009 0001 :done_loop
838 0000000000000146 0001 JIV.$$CNT!10|Lab_failed
839 0000000000000187 0001 ASA.end|$$TRE
840 0000000000000022 0001
841 0000000000000000 0000
842 0000000000000000 0000
843 0000000000000000 0000
844 0000000000000000 0000
845 0000000000000000 0000
846 0000000000000039 0001 VAR.$$MSG=(48) Add/Remove stress test - Quad
847 0000000000000120 0001 ASA.new|$$TRE|i
848 0000000000000084 0001 ASA.set|$$TRE|Key0|100
849 0000000000000081 0001 ASA.set|$$TRE|Key1|101
850 0000000000000077 0001 ASA.set|$$TRE|Key2|102
851 0000000000000094 0001 ASA.set|$$TRE|Key3|103
852 0000000000000085 0001 ASA.set|$$TRE|Key4|104
853 0000000000000078 0001 ASA.set|$$TRE|Key5|105
854 0000000000000078 0001 ASA.set|$$TRE|Key6|106
855 0000000000000075 0001 ASA.set|$$TRE|Key7|107
856 0000000000000075 0001 ASA.set|$$TRE|Key8|108
857 0000000000000073 0001 ASA.set|$$TRE|Key9|109
858 0000000000000086 0001 ASA.count|$$TRE|$$CNT
859 0000000000000104 0001 JIV.$$CNT!10|Lab_failed
860 0000000000000062 0001 ASA.del|$$TRE|Key1
861 0000000000000056 0001 ASA.del|$$TRE|Key3
862 0000000000000056 0001 ASA.del|$$TRE|Key5
863 0000000000000055 0001 ASA.del|$$TRE|Key7
864 0000000000000053 0001 ASA.del|$$TRE|Key9
865 0000000000000080 0001 ASA.count|$$TRE|$$CNT
866 0000000000000101 0001 JIV.$$CNT!5|Lab_failed
867 0000000000000073 0001 ASA.set|$$TRE|Key1|201
868 0000000000000068 0001 ASA.set|$$TRE|Key3|203
869 0000000000000074 0001 ASA.set|$$TRE|Key5|205
870 0000000000000068 0001 ASA.set|$$TRE|Key7|207
871 0000000000000067 0001 ASA.set|$$TRE|Key9|209
872 0000000000000079 0001 ASA.count|$$TRE|$$CNT
873 0000000000000098 0001 JIV.$$CNT!10|Lab_failed
874 0000000000000089 0001 ASA.get|$$TRE|Key1|$$VAL
875 0000000000000097 0001 JIV.$$VAL!201|Lab_failed
876 0000000000000088 0001 ASA.get|$$TRE|Key9|$$VAL
877 0000000000000096 0001 JIV.$$VAL!209|Lab_failed
878 0000000000000084 0001 ASA.end|$$TRE
879 0000000000000022 0001
880 0000000000000000 0000
881 0000000000000000 0000
882 0000000000000000 0000
883 0000000000000000 0000
884 0000000000000000 0000
885 0000000000000032 0001 VAR.$$MSG=(49) Empty tree - String
886 0000000000000093 0001 ASA.new|$$TRE|s
887 0000000000000077 0001 ASA.count|$$TRE|$$CNT
888 0000000000000079 0001 JNZ.$$CNT|Lab_failed
889 0000000000000078 0001 ASA.first|$$TRE|$$NOD
890 0000000000000080 0001 JNZ.$$NOD|Lab_failed
891 0000000000000076 0001 ASA.last|$$TRE|$$NOD
892 0000000000000079 0001 JNZ.$$NOD|Lab_failed
893 0000000000000085 0001 ASA.got|$$TRE|Key1|$$RES
894 0000000000000075 0001 JNZ.$$RES|Lab_failed
895 0000000000000083 0001 ASA.get|$$TRE|Key1|$$VAL
896 0000000000000059 0001 JIS.$$VAL|Lab_failed
897 0000000000000057 0001 ASA.end|$$TRE
898 0000000000000004 0001
899 0000000000000003 0001
900 0000000000000031 0001 VAR.$$MSG=(50) Empty tree - Quad
901 0000000000000096 0001 ASA.new|$$TRE|i
902 0000000000000076 0001 ASA.count|$$TRE|$$CNT
903 0000000000000079 0001 JNZ.$$CNT|Lab_failed
904 0000000000000078 0001 ASA.first|$$TRE|$$NOD
905 0000000000000079 0001 JNZ.$$NOD|Lab_failed
906 0000000000000074 0001 ASA.last|$$TRE|$$NOD
907 0000000000000095 0001 JNZ.$$NOD|Lab_failed
908 0000000000000089 0001 ASA.got|$$TRE|Key1|$$RES
909 0000000000000075 0001 JNZ.$$RES|Lab_failed
910 0000000000000082 0001 ASA.get|$$TRE|Key1|$$VAL
911 0000000000000077 0001 JNZ.$$VAL|Lab_failed
912 0000000000000056 0001 ASA.end|$$TRE
913 0000000000000003 0001
914 0000000000000003 0001
915 0000000000000035 0001 VAR.$$MSG=(51) Empty tree - Extended
916 0000000000000091 0001 ASA.new|$$TRE|f
917 0000000000000077 0001 ASA.count|$$TRE|$$CNT
918 0000000000000077 0001 JNZ.$$CNT|Lab_failed
919 0000000000000077 0001 ASA.first|$$TRE|$$NOD
920 0000000000000077 0001 JNZ.$$NOD|Lab_failed
921 0000000000000075 0001 ASA.last|$$TRE|$$NOD
922 0000000000000073 0001 JNZ.$$NOD|Lab_failed
923 0000000000000086 0001 ASA.got|$$TRE|Key1|$$RES
924 0000000000000074 0001 JNZ.$$RES|Lab_failed
925 0000000000000083 0001 ASA.get|$$TRE|Key1|$$VAL
926 0000000000000078 0001 JNZ.$$VAL|Lab_failed
927 0000000000000056 0001 ASA.end|$$TRE
928 0000000000000020 0001
929 0000000000000000 0000
930 0000000000000000 0000
931 0000000000000000 0000
932 0000000000000000 0000
933 0000000000000000 0000
934 0000000000000030 0001 VAR.$$MSG=(52) Key overwrite - String
935 0000000000000084 0001 ASA.new|$$TRE|s
936 0000000000000062 0001 ASA.set|$$TRE|Key1|Val1
937 0000000000000056 0001 ASA.set|$$TRE|Key1|Val2
938 0000000000000082 0001 ASA.got|$$TRE|Key1|$$RES
939 0000000000000079 0001 JIZ.$$RES|Lab_failed
940 0000000000000084 0001 ASA.get|$$TRE|Key1|$$VAL
941 0000000000000113 0001 JIV.$$VAL!Val2|Lab_failed
942 0000000000000077 0001 ASA.count|$$TRE|$$CNT
943 0000000000000096 0001 JIV.$$CNT!1|Lab_failed
944 0000000000000059 0001 ASA.end|$$TRE
945 0000000000000003 0001
946 0000000000000003 0001
947 0000000000000030 0001 VAR.$$MSG=(53) Key overwrite - Quad
948 0000000000000112 0001 ASA.new|$$TRE|i
949 0000000000000069 0001 ASA.set|$$TRE|Key1|100
950 0000000000000063 0001 ASA.set|$$TRE|Key1|200
951 0000000000000082 0001 ASA.got|$$TRE|Key1|$$RES
952 0000000000000078 0001 JIZ.$$RES|Lab_failed
953 0000000000000083 0001 ASA.get|$$TRE|Key1|$$VAL
954 0000000000000098 0001 JIV.$$VAL!200|Lab_failed
955 0000000000000075 0001 ASA.count|$$TRE|$$CNT
956 0000000000000095 0001 JIV.$$CNT!1|Lab_failed
957 0000000000000058 0001 ASA.end|$$TRE
958 0000000000000003 0001
959 0000000000000003 0001
960 0000000000000031 0001 VAR.$$MSG=(54) Key overwrite - Extended
961 0000000000000085 0001 ASA.new|$$TRE|f
962 0000000000000069 0001 ASA.set|$$TRE|Key1|1.11
963 0000000000000063 0001 ASA.set|$$TRE|Key1|2.22
964 0000000000000083 0001 ASA.got|$$TRE|Key1|$$RES
965 0000000000000079 0001 JIZ.$$RES|Lab_failed
966 0000000000000087 0001 ASA.get|$$TRE|Key1|$$VAL
967 0000000000000099 0001 JIV.$$VAL!2.22|Lab_failed
968 0000000000000076 0001 ASA.count|$$TRE|$$CNT
969 0000000000000095 0001 JIV.$$CNT!1|Lab_failed
970 0000000000000061 0001 ASA.end|$$TRE
971 0000000000000020 0001