mirror of
				https://source.quilibrium.com/quilibrium/ceremonyclient.git
				synced 2025-11-04 00:37:28 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			82 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
define
 | 
						|
a-c:{(#3,RANGEKEYUNSET,@5) (#2,RANGEKEYSET,@5,apples) (#1,RANGEKEYSET,@3,bananas)}
 | 
						|
c-d:{(#4,RANGEKEYSET,@3,bananas)}
 | 
						|
d-e:{(#4,RANGEKEYSET,@3,bananas) (#4,RANGEKEYSET,@1,pineapple)}
 | 
						|
----
 | 
						|
 | 
						|
# Iterating with logical defragmentation should combine [a,c) and [c,d)
 | 
						|
# fragments.
 | 
						|
 | 
						|
iter
 | 
						|
first
 | 
						|
next
 | 
						|
next
 | 
						|
last
 | 
						|
prev
 | 
						|
prev
 | 
						|
----
 | 
						|
first     a-d:{(#1,RANGEKEYSET,@3,bananas)}
 | 
						|
next      d-e:{(#4,RANGEKEYSET,@3,bananas) (#4,RANGEKEYSET,@1,pineapple)}
 | 
						|
next      .
 | 
						|
last      d-e:{(#4,RANGEKEYSET,@3,bananas) (#4,RANGEKEYSET,@1,pineapple)}
 | 
						|
prev      a-d:{(#4,RANGEKEYSET,@3,bananas)}
 | 
						|
prev      .
 | 
						|
 | 
						|
# Test defragmenting in both directions at seek keys.
 | 
						|
 | 
						|
define
 | 
						|
a-f:{(#3,RANGEKEYUNSET,@5) (#2,RANGEKEYSET,@5,apples) (#1,RANGEKEYSET,@3,bananas)}
 | 
						|
f-h:{(#3,RANGEKEYSET,@3,bananas)}
 | 
						|
h-p:{(#3,RANGEKEYSET,@3,bananas)}
 | 
						|
p-t:{(#3,RANGEKEYSET,@3,bananas)}
 | 
						|
----
 | 
						|
 | 
						|
iter
 | 
						|
seekge b
 | 
						|
prev
 | 
						|
seekge b
 | 
						|
next
 | 
						|
seeklt d
 | 
						|
next
 | 
						|
seeklt d
 | 
						|
prev
 | 
						|
----
 | 
						|
seekge b  a-t:{(#1,RANGEKEYSET,@3,bananas)}
 | 
						|
prev      .
 | 
						|
seekge b  a-t:{(#1,RANGEKEYSET,@3,bananas)}
 | 
						|
next      .
 | 
						|
seeklt d  a-t:{(#3,RANGEKEYSET,@3,bananas)}
 | 
						|
next      .
 | 
						|
seeklt d  a-t:{(#3,RANGEKEYSET,@3,bananas)}
 | 
						|
prev      .
 | 
						|
 | 
						|
iter
 | 
						|
seeklt d
 | 
						|
next
 | 
						|
prev
 | 
						|
----
 | 
						|
seeklt d  a-t:{(#3,RANGEKEYSET,@3,bananas)}
 | 
						|
next      .
 | 
						|
prev      a-t:{(#3,RANGEKEYSET,@3,bananas)}
 | 
						|
 | 
						|
# Test next-ing and prev-ing around seek keys.
 | 
						|
 | 
						|
define
 | 
						|
a-f:{(#3,RANGEKEYUNSET,@5) (#2,RANGEKEYSET,@5,apples) (#1,RANGEKEYSET,@3,bananas)}
 | 
						|
f-h:{(#3,RANGEKEYSET,@3,bananas)}
 | 
						|
h-p:{(#3,RANGEKEYSET,@3,bananas)}
 | 
						|
p-t:{(#3,RANGEKEYSET,@3,bananas)}
 | 
						|
t-z:{(#4,RANGEKEYSET,@2,oranges)}
 | 
						|
----
 | 
						|
 | 
						|
iter
 | 
						|
seekge r
 | 
						|
prev
 | 
						|
next
 | 
						|
next
 | 
						|
----
 | 
						|
seekge r  a-t:{(#1,RANGEKEYSET,@3,bananas)}
 | 
						|
prev      .
 | 
						|
next      a-t:{(#1,RANGEKEYSET,@3,bananas)}
 | 
						|
next      t-z:{(#4,RANGEKEYSET,@2,oranges)}
 |