15
15
16
16
package org.modelix.model
17
17
18
- import org.modelix.model.lazy.CLHamtInternal
19
- import org.modelix.model.lazy.CLHamtNode
20
18
import org.modelix.model.lazy.KVEntryReference
21
19
import org.modelix.model.lazy.ObjectStoreCache
20
+ import org.modelix.model.persistent.CPHamtInternal
21
+ import org.modelix.model.persistent.CPHamtNode
22
22
import org.modelix.model.persistent.CPNode
23
23
import org.modelix.model.persistent.MapBaseStore
24
24
import kotlin.random.Random
@@ -32,31 +32,31 @@ class HamtTest {
32
32
val expectedMap: MutableMap <Long , Long > = HashMap ()
33
33
val store = MapBaseStore ()
34
34
val storeCache = ObjectStoreCache (store)
35
- var hamt: CLHamtNode ? = CLHamtInternal .createEmpty(storeCache )
35
+ var hamt: CPHamtNode ? = CPHamtInternal .createEmpty()
36
36
for (i in 0 .. 999 ) {
37
37
if (expectedMap.isEmpty() || rand.nextBoolean()) {
38
38
// add entry
39
39
val key = rand.nextInt(1000 ).toLong()
40
40
val value = rand.nextLong()
41
- hamt = hamt!! .put(key, createEntry(value))
41
+ hamt = hamt!! .put(key, createEntry(value), storeCache )
42
42
expectedMap[key] = value
43
43
} else {
44
44
val keys: List <Long > = ArrayList (expectedMap.keys)
45
45
val key = keys[rand.nextInt(keys.size)]
46
46
if (rand.nextBoolean()) {
47
47
// remove entry
48
- hamt = hamt!! .remove(key)
48
+ hamt = hamt!! .remove(key, storeCache )
49
49
expectedMap.remove(key)
50
50
} else {
51
51
// replace entry
52
52
val value = rand.nextLong()
53
- hamt = hamt!! .put(key, createEntry(value))
53
+ hamt = hamt!! .put(key, createEntry(value), storeCache )
54
54
expectedMap[key] = value
55
55
}
56
56
}
57
57
storeCache.clearCache()
58
58
for ((key, value) in expectedMap) {
59
- assertEquals(value, hamt!! [ key] !! .getValue(storeCache).id)
59
+ assertEquals(value, hamt!! .get( key, storeCache) !! .getValue(storeCache).id)
60
60
}
61
61
}
62
62
}
@@ -79,22 +79,22 @@ class HamtTest {
79
79
fun test_random_case_causing_outofbounds_on_js () {
80
80
val store = MapBaseStore ()
81
81
val storeCache = ObjectStoreCache (store)
82
- var hamt: CLHamtNode ? = CLHamtInternal .createEmpty(storeCache )
82
+ var hamt: CPHamtNode ? = CPHamtInternal .createEmpty()
83
83
var getId = { e: KVEntryReference <CPNode >? -> e!! .getValue(storeCache).id }
84
84
85
- hamt = hamt!! .put(965L , createEntry(- 6579471327666419615 ))
86
- hamt = hamt!! .put(949L , createEntry(4912341421267007347 ))
87
- assertEquals(4912341421267007347 , getId(hamt!! [ 949L ] ))
88
- hamt = hamt!! .put(260L , createEntry(4166750678024106842 ))
89
- assertEquals(4166750678024106842 , getId(hamt!! [ 260L ] ))
90
- hamt = hamt!! .put(794L , createEntry(5492533034562136353 ))
91
- hamt = hamt!! .put(104L , createEntry(- 6505928823483070382 ))
92
- hamt = hamt!! .put(47L , createEntry(3122507882718949737 ))
93
- hamt = hamt!! .put(693L , createEntry(- 2086105010854963537 ))
85
+ hamt = hamt!! .put(965L , createEntry(- 6579471327666419615 ), storeCache )
86
+ hamt = hamt!! .put(949L , createEntry(4912341421267007347 ), storeCache )
87
+ assertEquals(4912341421267007347 , getId(hamt!! .get( 949L , storeCache) ))
88
+ hamt = hamt!! .put(260L , createEntry(4166750678024106842 ), storeCache )
89
+ assertEquals(4166750678024106842 , getId(hamt!! .get( 260L , storeCache) ))
90
+ hamt = hamt!! .put(794L , createEntry(5492533034562136353 ), storeCache )
91
+ hamt = hamt!! .put(104L , createEntry(- 6505928823483070382 ), storeCache )
92
+ hamt = hamt!! .put(47L , createEntry(3122507882718949737 ), storeCache )
93
+ hamt = hamt!! .put(693L , createEntry(- 2086105010854963537 ), storeCache )
94
94
storeCache.clearCache()
95
95
// assertEquals(69239088, (hamt!!.getData() as CPHamtInternal).bitmap)
96
96
// assertEquals(6, (hamt!!.getData() as CPHamtInternal).children.count())
97
- assertEquals(- 2086105010854963537 , getId(hamt!! [ 693L ] ))
97
+ assertEquals(- 2086105010854963537 , getId(hamt!! .get( 693L , storeCache) ))
98
98
}
99
99
100
100
/* *
@@ -105,7 +105,7 @@ class HamtTest {
105
105
@Test
106
106
fun insertionOrderTest () {
107
107
val store = ObjectStoreCache (MapBaseStore ())
108
- val emptyMap = CLHamtInternal .createEmpty(store )
108
+ val emptyMap = CPHamtInternal .createEmpty()
109
109
110
110
val rand = Random (123456789L )
111
111
val entries = HashMap <Long , KVEntryReference <CPNode >>()
@@ -120,10 +120,10 @@ class HamtTest {
120
120
var expectedHash: String? = null
121
121
122
122
for (i in 1 .. 10 ) {
123
- var map: CLHamtNode = emptyMap
124
- entries.entries.shuffled(rand).forEach { map = map.put(it.key, it.value)!! }
125
- keysToRemove.forEach { map = map.remove(it)!! }
126
- val hash = map.getData(). hash
123
+ var map: CPHamtNode = emptyMap
124
+ entries.entries.shuffled(rand).forEach { map = map.put(it.key, it.value, store )!! }
125
+ keysToRemove.forEach { map = map.remove(it, store )!! }
126
+ val hash = map.hash
127
127
if (i == 1 ) {
128
128
expectedHash = hash
129
129
} else {
0 commit comments