mirror of
				https://source.quilibrium.com/quilibrium/ceremonyclient.git
				synced 2025-11-04 15:57:58 +00:00 
			
		
		
		
	
		
			
	
	
		
			145 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			145 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								# Sequence of ops which tests all of the code paths in the size_estimate type.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								init 1
							 | 
						||
| 
								 | 
							
								----
							 | 
						||
| 
								 | 
							
								success
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Empty size should be 1
							 | 
						||
| 
								 | 
							
								size
							 | 
						||
| 
								 | 
							
								----
							 | 
						||
| 
								 | 
							
								1
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# There's a single inflight entry, so the size should be 4.
							 | 
						||
| 
								 | 
							
								add_inflight 4
							 | 
						||
| 
								 | 
							
								----
							 | 
						||
| 
								 | 
							
								4
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								num_inflight_entries
							 | 
						||
| 
								 | 
							
								----
							 | 
						||
| 
								 | 
							
								1
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								num_entries
							 | 
						||
| 
								 | 
							
								----
							 | 
						||
| 
								 | 
							
								1
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Compression ratio defaults to 1, so the size of the inflight entry fully
							 | 
						||
| 
								 | 
							
								# counts towards size.
							 | 
						||
| 
								 | 
							
								size
							 | 
						||
| 
								 | 
							
								----
							 | 
						||
| 
								 | 
							
								4
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# After compression, entry only had a size of 3. The total size is therefore
							 | 
						||
| 
								 | 
							
								# 3, since this is the first entry. The max estimated size is 4 since we
							 | 
						||
| 
								 | 
							
								# ensure that it is monotonically non decreasing.
							 | 
						||
| 
								 | 
							
								entry_written 3 4
							 | 
						||
| 
								 | 
							
								----
							 | 
						||
| 
								 | 
							
								4
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								num_entries
							 | 
						||
| 
								 | 
							
								----
							 | 
						||
| 
								 | 
							
								1
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# There should be 0 inflight entries once the previous entry has been written.
							 | 
						||
| 
								 | 
							
								num_inflight_entries
							 | 
						||
| 
								 | 
							
								----
							 | 
						||
| 
								 | 
							
								0
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Compression ratio is 0.75 at this point. The total size is 3, and the inflight
							 | 
						||
| 
								 | 
							
								# size is 5, so that returned size is uint64(3 + 0.75*5) = uint64(6.75).
							 | 
						||
| 
								 | 
							
								add_inflight 5
							 | 
						||
| 
								 | 
							
								----
							 | 
						||
| 
								 | 
							
								6
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								num_entries
							 | 
						||
| 
								 | 
							
								----
							 | 
						||
| 
								 | 
							
								2
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# We don't clear the empty size, so even after clearing a size of 1 is returned.
							 | 
						||
| 
								 | 
							
								clear
							 | 
						||
| 
								 | 
							
								----
							 | 
						||
| 
								 | 
							
								1
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Test writing multiple inflight entries.
							 | 
						||
| 
								 | 
							
								add_inflight 4
							 | 
						||
| 
								 | 
							
								----
							 | 
						||
| 
								 | 
							
								4
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								add_inflight 5
							 | 
						||
| 
								 | 
							
								----
							 | 
						||
| 
								 | 
							
								9
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								num_entries
							 | 
						||
| 
								 | 
							
								----
							 | 
						||
| 
								 | 
							
								2
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								num_inflight_entries
							 | 
						||
| 
								 | 
							
								----
							 | 
						||
| 
								 | 
							
								2
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# First inflight entry written. The entry didn't get compressed. The total size
							 | 
						||
| 
								 | 
							
								# now is less than 9, but the max estimated size should still be 9.
							 | 
						||
| 
								 | 
							
								entry_written 4 4
							 | 
						||
| 
								 | 
							
								----
							 | 
						||
| 
								 | 
							
								9
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								num_entries
							 | 
						||
| 
								 | 
							
								----
							 | 
						||
| 
								 | 
							
								2
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								num_inflight_entries
							 | 
						||
| 
								 | 
							
								----
							 | 
						||
| 
								 | 
							
								1
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# At this point, inflightSize is 13, the totalSize is 4. The compression ratio
							 | 
						||
| 
								 | 
							
								# is 1. So, the returned size should be 17.
							 | 
						||
| 
								 | 
							
								add_inflight 8
							 | 
						||
| 
								 | 
							
								----
							 | 
						||
| 
								 | 
							
								17
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# One entry has been written.
							 | 
						||
| 
								 | 
							
								num_written_entries
							 | 
						||
| 
								 | 
							
								----
							 | 
						||
| 
								 | 
							
								1
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# The inflight entry had a size of 5, but the entry added had a size of 3
							 | 
						||
| 
								 | 
							
								# because of compression/size estimation. The compression ratio is (4+3)/(4+5)
							 | 
						||
| 
								 | 
							
								# = 0.77 at this point. The inflightSize is 8. The true size is 7+8*0.77 =
							 | 
						||
| 
								 | 
							
								# 13.22, but the maxEstimatedSize is returned.
							 | 
						||
| 
								 | 
							
								entry_written 7 5
							 | 
						||
| 
								 | 
							
								----
							 | 
						||
| 
								 | 
							
								17
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# The inflight size is 0, and the total size is 11.
							 | 
						||
| 
								 | 
							
								entry_written 11 8
							 | 
						||
| 
								 | 
							
								----
							 | 
						||
| 
								 | 
							
								17
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								num_written_entries
							 | 
						||
| 
								 | 
							
								----
							 | 
						||
| 
								 | 
							
								3
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# The compression ratio is (4+3+4)/(4+5+8)=0.647, and the inflight size is 20,
							 | 
						||
| 
								 | 
							
								# 20*0.64 = 12.94, so the total size is uint64(12.94 + 11)
							 | 
						||
| 
								 | 
							
								add_inflight 20
							 | 
						||
| 
								 | 
							
								----
							 | 
						||
| 
								 | 
							
								23
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								num_inflight_entries
							 | 
						||
| 
								 | 
							
								----
							 | 
						||
| 
								 | 
							
								1
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# We can write an entry, which increases the written size from 11 to 19, but
							 | 
						||
| 
								 | 
							
								# it might not have an inflightSize, because it was never inflight. In such a
							 | 
						||
| 
								 | 
							
								# case, the numInflightEntries, shouldn't be decreased.
							 | 
						||
| 
								 | 
							
								entry_written 19 0
							 | 
						||
| 
								 | 
							
								----
							 | 
						||
| 
								 | 
							
								31
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								num_inflight_entries
							 | 
						||
| 
								 | 
							
								----
							 | 
						||
| 
								 | 
							
								1
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								num_written_entries
							 | 
						||
| 
								 | 
							
								----
							 | 
						||
| 
								 | 
							
								4
							 |