Skip to content

Commit 99f43db

Browse files
committedMar 25, 2025
fix tests
1 parent 705dd77 commit 99f43db

File tree

2 files changed

+26
-34
lines changed

2 files changed

+26
-34
lines changed
 

‎pallets/subtensor/src/coinbase/run_coinbase.rs

+1
Original file line numberDiff line numberDiff line change
@@ -342,6 +342,7 @@ impl<T: Config> Pallet<T> {
342342
log::debug!("alpha_dividends: {:?}", alpha_dividends);
343343
log::debug!("root_dividends: {:?}", root_dividends);
344344
log::debug!("total_root_divs: {:?}", total_root_divs);
345+
log::debug!("total_alpha_divs: {:?}", total_alpha_divs);
345346

346347
// Compute root divs as TAO. Here we take
347348
let mut tao_dividends: BTreeMap<T::AccountId, I96F32> = BTreeMap::new();

‎pallets/subtensor/src/tests/coinbase.rs

+25-34
Original file line numberDiff line numberDiff line change
@@ -569,7 +569,7 @@ fn test_drain_base_with_subnet_with_single_staker_registered_root_weight() {
569569
SubtensorModule::get_stake_for_hotkey_and_coldkey_on_subnet(&hotkey, &coldkey, netuid);
570570
let root_after =
571571
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.
573573
close(stake_before + pending_tao, root_after, 10); // Registered gets all tao emission
574574
});
575575
}
@@ -660,8 +660,8 @@ fn test_drain_base_with_subnet_with_two_stakers_registered_and_root() {
660660
SubtensorModule::get_stake_for_hotkey_and_coldkey_on_subnet(&hotkey2, &coldkey, netuid);
661661
let root_after2 =
662662
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.
665665
close(stake_before + pending_tao / 2, root_after1, 10); // Registered gets 1/2 tao emission
666666
close(stake_before + pending_tao / 2, root_after2, 10); // Registered gets 1/2 tao emission
667667
});
@@ -719,21 +719,17 @@ fn test_drain_base_with_subnet_with_two_stakers_registered_and_root_different_am
719719
let root_after2 =
720720
SubtensorModule::get_stake_for_hotkey_and_coldkey_on_subnet(&hotkey2, &coldkey, root);
721721
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
726724
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
731727
let expected_root1 = I96F32::from_num(2 * stake_before)
732728
+ 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
734730
let expected_root2 = I96F32::from_num(stake_before)
735731
+ 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
737733
});
738734
}
739735

@@ -789,26 +785,20 @@ fn test_drain_base_with_subnet_with_two_stakers_registered_and_root_different_am
789785
SubtensorModule::get_stake_for_hotkey_and_coldkey_on_subnet(&hotkey2, &coldkey, netuid);
790786
let root_after2 =
791787
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.
793788
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);
799791
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);
804794
// hotkey 1 has 2 / 3 root tao
805795
let expected_root1 = I96F32::from_num(2 * stake_before)
806796
+ 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);
808798
// hotkey 1 has 1 / 3 root tao
809799
let expected_root2 = I96F32::from_num(stake_before)
810800
+ 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);
812802
});
813803
}
814804

@@ -1173,12 +1163,12 @@ fn test_get_root_children_drain_half_proportion() {
11731163
// Alice and Bob make the same amount.
11741164
close(
11751165
AlphaDividendsPerSubnet::<Test>::get(alpha, alice),
1176-
pending_alpha / 4,
1166+
pending_alpha / 2,
11771167
10,
11781168
);
11791169
close(
11801170
AlphaDividendsPerSubnet::<Test>::get(alpha, bob),
1181-
pending_alpha / 4,
1171+
pending_alpha / 2,
11821172
10,
11831173
);
11841174
});
@@ -1244,19 +1234,19 @@ fn test_get_root_children_drain_with_take() {
12441234
// Set Bob as 100% child of Alice on root.
12451235
ChildkeyTake::<Test>::insert(bob, alpha, u16::MAX);
12461236
mock_set_children_no_epochs(alpha, &alice, &[(u64::MAX, bob)]);
1247-
// Set Bob childkey take to zero.
1237+
// Set Bob validator take to zero.
12481238
Delegates::<Test>::insert(alice, 0);
12491239
Delegates::<Test>::insert(bob, 0);
12501240

12511241
// Lets drain!
12521242
let pending_alpha: u64 = 1_000_000_000;
12531243
SubtensorModule::drain_pending_emission(alpha, pending_alpha, 0, 0, 0);
12541244

1255-
// Alice and Bob make the same amount.
1245+
// Bob makes it all.
12561246
close(AlphaDividendsPerSubnet::<Test>::get(alpha, alice), 0, 10);
12571247
close(
12581248
AlphaDividendsPerSubnet::<Test>::get(alpha, bob),
1259-
pending_alpha / 2,
1249+
pending_alpha,
12601250
10,
12611251
);
12621252
});
@@ -1333,12 +1323,12 @@ fn test_get_root_children_drain_with_half_take() {
13331323
// Alice and Bob make the same amount.
13341324
close(
13351325
AlphaDividendsPerSubnet::<Test>::get(alpha, alice),
1336-
pending_alpha / 8,
1326+
pending_alpha / 4,
13371327
10000,
13381328
);
13391329
close(
13401330
AlphaDividendsPerSubnet::<Test>::get(alpha, bob),
1341-
3 * (pending_alpha / 8),
1331+
3 * (pending_alpha / 4),
13421332
10000,
13431333
);
13441334
});
@@ -1702,9 +1692,10 @@ fn test_calculate_dividend_and_incentive_distribution() {
17021692
.sum::<I96F32>()
17031693
.saturating_to_num::<u64>();
17041694

1705-
assert_eq!(
1695+
assert_abs_diff_eq!(
17061696
dividends_total.saturating_add(incentives_total),
1707-
pending_alpha
1697+
pending_alpha,
1698+
epsilon = 2
17081699
);
17091700
});
17101701
}

0 commit comments

Comments
 (0)