@@ -83,20 +83,22 @@ def test_calculate_ip_iters(self):
83
83
assert ip_iters == (sp_iters + test_constants .NUM_SP_INTERVALS_EXTRA * sp_interval_iters + required_iters ) % ssi
84
84
assert sp_iters > ip_iters
85
85
86
- # TODO: todo_v2_plots test this for v2 plots as well
87
86
def test_win_percentage (self ):
88
87
"""
89
88
Tests that the percentage of blocks won is proportional to the space of each farmer,
90
89
with the assumption that all farmers have access to the same VDF speed.
91
90
"""
92
91
farmer_ks = {
93
- uint8 (32 ): 100 ,
94
- uint8 (33 ): 100 ,
95
- uint8 (34 ): 100 ,
96
- uint8 (35 ): 100 ,
97
- uint8 (36 ): 100 ,
92
+ PlotSize .make_v1 (32 ): 100 ,
93
+ PlotSize .make_v1 (33 ): 100 ,
94
+ PlotSize .make_v1 (34 ): 100 ,
95
+ PlotSize .make_v1 (35 ): 100 ,
96
+ PlotSize .make_v1 (36 ): 100 ,
97
+ PlotSize .make_v2 (28 ): 100 ,
98
+ PlotSize .make_v2 (30 ): 100 ,
99
+ PlotSize .make_v2 (32 ): 100 ,
98
100
}
99
- farmer_space = {k : _expected_plot_size (PlotSize . make_v1 ( k ) ) * count for k , count in farmer_ks .items ()}
101
+ farmer_space = {k : _expected_plot_size (k ) * count for k , count in farmer_ks .items ()}
100
102
total_space = sum (farmer_space .values ())
101
103
percentage_space = {k : float (sp / total_space ) for k , sp in farmer_space .items ()}
102
104
wins = {k : 0 for k in farmer_ks .keys ()}
@@ -111,9 +113,12 @@ def test_win_percentage(self):
111
113
sp_hash = std_hash (slot_index .to_bytes (4 , "big" ) + sp_index .to_bytes (4 , "big" ))
112
114
for k , count in farmer_ks .items ():
113
115
for farmer_index in range (count ):
114
- quality = std_hash (slot_index .to_bytes (4 , "big" ) + k .to_bytes (1 , "big" ) + bytes (farmer_index ))
116
+ plot_k_val = k .size_v1 if k .size_v2 is None else k .size_v2
117
+ quality = std_hash (
118
+ slot_index .to_bytes (4 , "big" ) + plot_k_val .to_bytes (1 , "big" ) + bytes (farmer_index )
119
+ )
115
120
required_iters = calculate_iterations_quality (
116
- constants , quality , PlotSize . make_v1 ( k ) , difficulty , sp_hash , uint64 (100000000 ), uint32 (0 )
121
+ constants , quality , k , difficulty , sp_hash , uint64 (100000000 ), uint32 (0 )
117
122
)
118
123
if required_iters < sp_interval_iters :
119
124
wins [k ] += 1
0 commit comments