AVL Tree - Concepts and Real-World Use

<< Click to Display Table of Contents >>

Navigation:  3. Script Language > Arrays and Data-Structures >

AVL Tree - Concepts and Real-World Use

AVL Tree Overview

Previous Top Next


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.

 

Key Concepts

 

What is an AVL Tree?

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.

 

Why Use AVL Trees?

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.

 

Buzzwords Explained

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.

 

Commands and Real-World Applications

 

Management Commands

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.

 

Operation Commands

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.

 

Persistence Commands

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.

 

Cloning Command

This command duplicates the tree.

ASA.Clone: Creates a copy. Example: Duplicate a customer database for testing new features without affecting live data.

 

Real-Life Examples

- **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.

 

Summary

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.EndAll

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