mirror of
				https://git.wownero.com/wownero/wownero.git
				synced 2024-08-15 01:03:23 +00:00 
			
		
		
		
	add a test for the long term weight cache
This commit is contained in:
		
							parent
							
								
									810f6a6cd2
								
							
						
					
					
						commit
						69de381526
					
				
					 1 changed files with 35 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -407,3 +407,38 @@ TEST(long_term_block_weight, long_growth_spike_and_drop)
 | 
			
		|||
  ASSERT_GT(long_term_effective_median_block_weight, 300000 * 1.07);
 | 
			
		||||
  ASSERT_LT(long_term_effective_median_block_weight, 300000 * 1.09);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
TEST(long_term_block_weight, cache_matches_true_value)
 | 
			
		||||
{
 | 
			
		||||
  PREFIX(16);
 | 
			
		||||
 | 
			
		||||
  // Add big blocks to increase the block weight limit 
 | 
			
		||||
  for (uint64_t h = 0; h <= 2000; ++h)
 | 
			
		||||
  {
 | 
			
		||||
    size_t w = bc->get_current_cumulative_block_weight_limit();
 | 
			
		||||
    uint64_t ltw = bc->get_next_long_term_block_weight(w);
 | 
			
		||||
    bc->get_db().add_block(std::make_pair(cryptonote::block(), ""), w, ltw, h, h, {});
 | 
			
		||||
    bc->update_next_cumulative_weight_limit();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  ASSERT_GT(bc->get_current_cumulative_block_weight_limit() * 10/17 , 300000);
 | 
			
		||||
 | 
			
		||||
  // Add small blocks to the top of the chain
 | 
			
		||||
  for (uint64_t h = 2000; h <= 5001; ++h)
 | 
			
		||||
  {
 | 
			
		||||
    size_t w = (bc->get_current_cumulative_block_weight_median() * 10/17) - 1000;
 | 
			
		||||
    uint64_t ltw = bc->get_next_long_term_block_weight(w);
 | 
			
		||||
    bc->get_db().add_block(std::make_pair(cryptonote::block(), ""), w, ltw, h, h, {});
 | 
			
		||||
    bc->update_next_cumulative_weight_limit();
 | 
			
		||||
  }
 | 
			
		||||
 
 | 
			
		||||
  // get the weight limit
 | 
			
		||||
  uint64_t weight_limit = bc->get_current_cumulative_block_weight_limit();
 | 
			
		||||
  // refresh the cache
 | 
			
		||||
  bc->m_long_term_block_weights_cache_rolling_median.clear();
 | 
			
		||||
  bc->get_long_term_block_weight_median(bc->get_db().height() - TEST_LONG_TERM_BLOCK_WEIGHT_WINDOW, TEST_LONG_TERM_BLOCK_WEIGHT_WINDOW);
 | 
			
		||||
  bc->update_next_cumulative_weight_limit();
 | 
			
		||||
 | 
			
		||||
  // make sure the weight limit is the same
 | 
			
		||||
  ASSERT_EQ(weight_limit, bc->get_current_cumulative_block_weight_limit());
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue