From 14ea5dca054e0698abfad88ab495481688e25cb3 Mon Sep 17 00:00:00 2001 From: "Alex A. Naanou" Date: Sat, 17 Oct 2020 03:11:59 +0300 Subject: [PATCH] tweaking tests some more... Signed-off-by: Alex A. Naanou --- test.js | 85 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 81 insertions(+), 4 deletions(-) diff --git a/test.js b/test.js index 4ae0212..fc481ef 100755 --- a/test.js +++ b/test.js @@ -200,15 +200,92 @@ var cases = test.Cases({ //--------------------------------------------------------------------- // UniqueKeyMap testing... -var UniqueKeyMap_test = test.TestSet() -test.Case('UniqueKeyMap-new', UniqueKeyMap_test) +var UniqueKeyMap = test.TestSet() +test.Case('UniqueKeyMap-new', UniqueKeyMap) // XXX -UniqueKeyMap_test.setups({ +UniqueKeyMap.setups({ + empty: function(assert){ + return { + value: assert(containers.UniqueKeyMap()), + // metadata... + size: 0, + }}, + 'empty-input': function(assert){ + return { + value: assert(containers.UniqueKeyMap([])), + // metadata... + size: 0, + }}, + // XXX non-empty input... + // XXX intersecting unput... }) // XXX -UniqueKeyMap_test.tests({ +UniqueKeyMap.modifiers({ + set: function(assert, e, k='a', o){ + o = o || {} + var n + + var exists = e.value.has(k) + var expected = e.value.uniqieKey(k) + + assert(n = e.value.set(k, o, true), '.set(..)') + + // key update... + assert(n.startsWith(k), 'key prefix') + assert(n == expected, 'unexpected key') + exists + || assert(n == k, 'key unexpectedly changed') + + // size... + e.size += 1 + assert(e.value.size == e.size, 'inc size') + + return e }, + reset: function(assert, e, k='a', o){ + o = o || {} + + var exists = e.value.has(k) + + assert(e.value.reset(k, o)) + assert(e.value.get(k) === o) + + // size... + exists + || (e.size += 1) + assert(e.value.size == e.size) + + return e }, + delete: function(assert, e, k='a'){ + + var exists = e.value.has(k) + + assert(e.value.delete(k) == exists, '.delete(..)') + assert(!e.value.has(k), 'delete successful') + + // size... + exists + && (e.size -= 1) + assert(e.value.size == e.size) + + return e }, + + 'set-set': function(assert, e){ + this.set(assert, e, 'x') + this.set(assert, e, 'y') + this.set(assert, e, 'x') + return e }, +}) + +// XXX +UniqueKeyMap.tests({ + consistent: function(assert, e){ + + assert(e.value.size == e.size, '.size') + assert([...e.value.keys()].length == e.value.size, '.keys() same size as .size') + + return e } })