@@ -569,7 +569,7 @@ fn test_drain_base_with_subnet_with_single_staker_registered_root_weight() {
569
569
SubtensorModule :: get_stake_for_hotkey_and_coldkey_on_subnet ( & hotkey, & coldkey, netuid) ;
570
570
let root_after =
571
571
SubtensorModule :: get_stake_for_hotkey_and_coldkey_on_subnet ( & hotkey, & coldkey, root) ;
572
- close ( stake_before + pending_alpha / 2 , stake_after, 10 ) ; // Registered gets all alpha emission.
572
+ close ( stake_before + pending_alpha, stake_after, 10 ) ; // Registered gets all alpha emission.
573
573
close ( stake_before + pending_tao, root_after, 10 ) ; // Registered gets all tao emission
574
574
} ) ;
575
575
}
@@ -660,8 +660,8 @@ fn test_drain_base_with_subnet_with_two_stakers_registered_and_root() {
660
660
SubtensorModule :: get_stake_for_hotkey_and_coldkey_on_subnet ( & hotkey2, & coldkey, netuid) ;
661
661
let root_after2 =
662
662
SubtensorModule :: get_stake_for_hotkey_and_coldkey_on_subnet ( & hotkey2, & coldkey, root) ;
663
- close ( stake_before + pending_alpha / 4 , stake_after1, 10 ) ; // Registered gets 1/2 emission
664
- close ( stake_before + pending_alpha / 4 , stake_after2, 10 ) ; // Registered gets 1/2 emission.
663
+ close ( stake_before + pending_alpha / 2 , stake_after1, 10 ) ; // Registered gets 1/2 emission
664
+ close ( stake_before + pending_alpha / 2 , stake_after2, 10 ) ; // Registered gets 1/2 emission.
665
665
close ( stake_before + pending_tao / 2 , root_after1, 10 ) ; // Registered gets 1/2 tao emission
666
666
close ( stake_before + pending_tao / 2 , root_after2, 10 ) ; // Registered gets 1/2 tao emission
667
667
} ) ;
@@ -719,21 +719,17 @@ fn test_drain_base_with_subnet_with_two_stakers_registered_and_root_different_am
719
719
let root_after2 =
720
720
SubtensorModule :: get_stake_for_hotkey_and_coldkey_on_subnet ( & hotkey2, & coldkey, root) ;
721
721
let expected_stake = I96F32 :: from_num ( stake_before)
722
- + ( I96F32 :: from_num ( pending_alpha)
723
- * I96F32 :: from_num ( 3.0 / 5.0 )
724
- * I96F32 :: from_num ( 1.0 / 3.0 ) ) ;
725
- close ( expected_stake. to_num :: < u64 > ( ) , stake_after1, 10 ) ; // Registered gets 60% of emission
722
+ + ( I96F32 :: from_num ( pending_alpha) * I96F32 :: from_num ( 1.0 / 2.0 ) ) ;
723
+ assert_abs_diff_eq ! ( expected_stake. to_num:: <u64 >( ) , stake_after1, epsilon = 10 ) ; // Registered gets 50% of alpha emission
726
724
let expected_stake2 = I96F32 :: from_num ( stake_before)
727
- + I96F32 :: from_num ( pending_alpha)
728
- * I96F32 :: from_num ( 2.0 / 5.0 )
729
- * I96F32 :: from_num ( 1.0 / 2.0 ) ;
730
- close ( expected_stake2. to_num :: < u64 > ( ) , stake_after2, 10 ) ; // Registered gets 40% emission
725
+ + I96F32 :: from_num ( pending_alpha) * I96F32 :: from_num ( 1.0 / 2.0 ) ;
726
+ assert_abs_diff_eq ! ( expected_stake2. to_num:: <u64 >( ) , stake_after2, epsilon = 10 ) ; // Registered gets 50% emission
731
727
let expected_root1 = I96F32 :: from_num ( 2 * stake_before)
732
728
+ I96F32 :: from_num ( pending_tao) * I96F32 :: from_num ( 2.0 / 3.0 ) ;
733
- close ( expected_root1. to_num :: < u64 > ( ) , root_after1, 10 ) ; // Registered gets 2/3 tao emission
729
+ assert_abs_diff_eq ! ( expected_root1. to_num:: <u64 >( ) , root_after1, epsilon = 10 ) ; // Registered gets 2/3 tao emission
734
730
let expected_root2 = I96F32 :: from_num ( stake_before)
735
731
+ I96F32 :: from_num ( pending_tao) * I96F32 :: from_num ( 1.0 / 3.0 ) ;
736
- close ( expected_root2. to_num :: < u64 > ( ) , root_after2, 10 ) ; // Registered gets 1/3 tao emission
732
+ assert_abs_diff_eq ! ( expected_root2. to_num:: <u64 >( ) , root_after2, epsilon = 10 ) ; // Registered gets 1/3 tao emission
737
733
} ) ;
738
734
}
739
735
@@ -789,26 +785,20 @@ fn test_drain_base_with_subnet_with_two_stakers_registered_and_root_different_am
789
785
SubtensorModule :: get_stake_for_hotkey_and_coldkey_on_subnet ( & hotkey2, & coldkey, netuid) ;
790
786
let root_after2 =
791
787
SubtensorModule :: get_stake_for_hotkey_and_coldkey_on_subnet ( & hotkey2, & coldkey, root) ;
792
- // hotkey 1 has (1 + (2 * 0.5))/( 1 + 1*0.5 + 1 + (2 * 0.5)) = 0.5714285714 of the hotkey emission.
793
788
let expected_stake = I96F32 :: from_num ( stake_before)
794
- + I96F32 :: from_num ( pending_alpha)
795
- * I96F32 :: from_num ( 0.5714285714 )
796
- * I96F32 :: from_num ( 1.0 / 2.0 ) ;
797
- close ( expected_stake. to_num :: < u64 > ( ) , stake_after1, 10 ) ;
798
- // hotkey 2 has (1 + 1*0.5)/( 1 + 1*0.5 + 1 + (2 * 0.5)) = 0.4285714286 of the hotkey emission.
789
+ + I96F32 :: from_num ( pending_alpha) * I96F32 :: from_num ( 1.0 / 2.0 ) ;
790
+ assert_abs_diff_eq ! ( expected_stake. to_num:: <u64 >( ) , stake_after1, epsilon = 10 ) ;
799
791
let expected_stake2 = I96F32 :: from_num ( stake_before)
800
- + I96F32 :: from_num ( pending_alpha)
801
- * I96F32 :: from_num ( 0.4285714286 )
802
- * I96F32 :: from_num ( 2.0 / 3.0 ) ;
803
- close ( expected_stake2. to_num :: < u64 > ( ) , stake_after2, 10 ) ;
792
+ + I96F32 :: from_num ( pending_alpha) * I96F32 :: from_num ( 1.0 / 2.0 ) ;
793
+ assert_abs_diff_eq ! ( expected_stake2. to_num:: <u64 >( ) , stake_after2, epsilon = 10 ) ;
804
794
// hotkey 1 has 2 / 3 root tao
805
795
let expected_root1 = I96F32 :: from_num ( 2 * stake_before)
806
796
+ I96F32 :: from_num ( pending_tao) * I96F32 :: from_num ( 2.0 / 3.0 ) ;
807
- close ( expected_root1. to_num :: < u64 > ( ) , root_after1, 10 ) ;
797
+ assert_abs_diff_eq ! ( expected_root1. to_num:: <u64 >( ) , root_after1, epsilon = 10 ) ;
808
798
// hotkey 1 has 1 / 3 root tao
809
799
let expected_root2 = I96F32 :: from_num ( stake_before)
810
800
+ I96F32 :: from_num ( pending_tao) * I96F32 :: from_num ( 1.0 / 3.0 ) ;
811
- close ( expected_root2. to_num :: < u64 > ( ) , root_after2, 10 ) ;
801
+ assert_abs_diff_eq ! ( expected_root2. to_num:: <u64 >( ) , root_after2, epsilon = 10 ) ;
812
802
} ) ;
813
803
}
814
804
@@ -1173,12 +1163,12 @@ fn test_get_root_children_drain_half_proportion() {
1173
1163
// Alice and Bob make the same amount.
1174
1164
close (
1175
1165
AlphaDividendsPerSubnet :: < Test > :: get ( alpha, alice) ,
1176
- pending_alpha / 4 ,
1166
+ pending_alpha / 2 ,
1177
1167
10 ,
1178
1168
) ;
1179
1169
close (
1180
1170
AlphaDividendsPerSubnet :: < Test > :: get ( alpha, bob) ,
1181
- pending_alpha / 4 ,
1171
+ pending_alpha / 2 ,
1182
1172
10 ,
1183
1173
) ;
1184
1174
} ) ;
@@ -1244,19 +1234,19 @@ fn test_get_root_children_drain_with_take() {
1244
1234
// Set Bob as 100% child of Alice on root.
1245
1235
ChildkeyTake :: < Test > :: insert ( bob, alpha, u16:: MAX ) ;
1246
1236
mock_set_children_no_epochs ( alpha, & alice, & [ ( u64:: MAX , bob) ] ) ;
1247
- // Set Bob childkey take to zero.
1237
+ // Set Bob validator take to zero.
1248
1238
Delegates :: < Test > :: insert ( alice, 0 ) ;
1249
1239
Delegates :: < Test > :: insert ( bob, 0 ) ;
1250
1240
1251
1241
// Lets drain!
1252
1242
let pending_alpha: u64 = 1_000_000_000 ;
1253
1243
SubtensorModule :: drain_pending_emission ( alpha, pending_alpha, 0 , 0 , 0 ) ;
1254
1244
1255
- // Alice and Bob make the same amount .
1245
+ // Bob makes it all .
1256
1246
close ( AlphaDividendsPerSubnet :: < Test > :: get ( alpha, alice) , 0 , 10 ) ;
1257
1247
close (
1258
1248
AlphaDividendsPerSubnet :: < Test > :: get ( alpha, bob) ,
1259
- pending_alpha / 2 ,
1249
+ pending_alpha,
1260
1250
10 ,
1261
1251
) ;
1262
1252
} ) ;
@@ -1333,12 +1323,12 @@ fn test_get_root_children_drain_with_half_take() {
1333
1323
// Alice and Bob make the same amount.
1334
1324
close (
1335
1325
AlphaDividendsPerSubnet :: < Test > :: get ( alpha, alice) ,
1336
- pending_alpha / 8 ,
1326
+ pending_alpha / 4 ,
1337
1327
10000 ,
1338
1328
) ;
1339
1329
close (
1340
1330
AlphaDividendsPerSubnet :: < Test > :: get ( alpha, bob) ,
1341
- 3 * ( pending_alpha / 8 ) ,
1331
+ 3 * ( pending_alpha / 4 ) ,
1342
1332
10000 ,
1343
1333
) ;
1344
1334
} ) ;
@@ -1702,9 +1692,10 @@ fn test_calculate_dividend_and_incentive_distribution() {
1702
1692
. sum :: < I96F32 > ( )
1703
1693
. saturating_to_num :: < u64 > ( ) ;
1704
1694
1705
- assert_eq ! (
1695
+ assert_abs_diff_eq ! (
1706
1696
dividends_total. saturating_add( incentives_total) ,
1707
- pending_alpha
1697
+ pending_alpha,
1698
+ epsilon = 2
1708
1699
) ;
1709
1700
} ) ;
1710
1701
}
0 commit comments