mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-20 01:11:08 +00:00
clean the interface of supports map (#9674)
* clean the interface of supports map, make it a bit cleaner and more efficients * Fix stiff * fix one test * Fix warnings
This commit is contained in:
@@ -19,8 +19,8 @@
|
||||
|
||||
use crate::{
|
||||
balancing, helpers::*, is_score_better, mock::*, seq_phragmen, seq_phragmen_core, setup_inputs,
|
||||
to_support_map, to_supports, Assignment, ElectionResult, EvaluateSupport, ExtendedBalance,
|
||||
IndexAssignment, NposSolution, StakedAssignment, Support, Voter,
|
||||
to_support_map, Assignment, ElectionResult, ExtendedBalance, IndexAssignment, NposSolution,
|
||||
StakedAssignment, Support, Voter,
|
||||
};
|
||||
use rand::{self, SeedableRng};
|
||||
use sp_arithmetic::{PerU16, Perbill, Percent, Permill};
|
||||
@@ -259,8 +259,7 @@ fn phragmen_poc_works() {
|
||||
);
|
||||
|
||||
let staked = assignment_ratio_to_staked(assignments, &stake_of);
|
||||
let winners = to_without_backing(winners);
|
||||
let support_map = to_support_map::<AccountId>(&winners, &staked).unwrap();
|
||||
let support_map = to_support_map::<AccountId>(&staked);
|
||||
|
||||
assert_eq_uvec!(
|
||||
staked,
|
||||
@@ -315,8 +314,7 @@ fn phragmen_poc_works_with_balancing() {
|
||||
);
|
||||
|
||||
let staked = assignment_ratio_to_staked(assignments, &stake_of);
|
||||
let winners = to_without_backing(winners);
|
||||
let support_map = to_support_map::<AccountId>(&winners, &staked).unwrap();
|
||||
let support_map = to_support_map::<AccountId>(&staked);
|
||||
|
||||
assert_eq_uvec!(
|
||||
staked,
|
||||
@@ -515,7 +513,7 @@ fn phragmen_large_scale_test() {
|
||||
)
|
||||
.unwrap();
|
||||
|
||||
assert_eq_uvec!(to_without_backing(winners.clone()), vec![24, 22]);
|
||||
assert_eq_uvec!(winners.iter().map(|(x, _)| *x).collect::<Vec<_>>(), vec![24, 22]);
|
||||
check_assignments_sum(&assignments);
|
||||
}
|
||||
|
||||
@@ -649,8 +647,7 @@ fn phragmen_self_votes_should_be_kept() {
|
||||
);
|
||||
|
||||
let staked_assignments = assignment_ratio_to_staked(result.assignments, &stake_of);
|
||||
let winners = to_without_backing(result.winners);
|
||||
let supports = to_support_map::<AccountId>(&winners, &staked_assignments).unwrap();
|
||||
let supports = to_support_map::<AccountId>(&staked_assignments);
|
||||
|
||||
assert_eq!(supports.get(&5u64), None);
|
||||
assert_eq!(
|
||||
@@ -670,9 +667,8 @@ fn duplicate_target_is_ignored() {
|
||||
|
||||
let ElectionResult { winners, assignments } =
|
||||
seq_phragmen::<_, Perbill>(2, candidates, voters, None).unwrap();
|
||||
let winners = to_without_backing(winners);
|
||||
|
||||
assert_eq!(winners, vec![(2), (3)]);
|
||||
assert_eq!(winners, vec![(2, 140), (3, 110)]);
|
||||
assert_eq!(
|
||||
assignments
|
||||
.into_iter()
|
||||
@@ -689,9 +685,8 @@ fn duplicate_target_is_ignored_when_winner() {
|
||||
|
||||
let ElectionResult { winners, assignments } =
|
||||
seq_phragmen::<_, Perbill>(2, candidates, voters, None).unwrap();
|
||||
let winners = to_without_backing(winners);
|
||||
|
||||
assert_eq!(winners, vec![1, 2]);
|
||||
assert_eq!(winners, vec![(1, 100), (2, 100)]);
|
||||
assert_eq!(
|
||||
assignments
|
||||
.into_iter()
|
||||
@@ -701,31 +696,6 @@ fn duplicate_target_is_ignored_when_winner() {
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn support_map_and_vec_can_be_evaluated() {
|
||||
let candidates = vec![1, 2, 3];
|
||||
let voters = vec![(10, vec![1, 2]), (20, vec![1, 3]), (30, vec![2, 3])];
|
||||
|
||||
let stake_of = create_stake_of(&[(10, 10), (20, 20), (30, 30)]);
|
||||
let ElectionResult { winners, assignments } = seq_phragmen::<_, Perbill>(
|
||||
2,
|
||||
candidates,
|
||||
voters
|
||||
.iter()
|
||||
.map(|(ref v, ref vs)| (v.clone(), stake_of(v), vs.clone()))
|
||||
.collect::<Vec<_>>(),
|
||||
None,
|
||||
)
|
||||
.unwrap();
|
||||
|
||||
let staked = assignment_ratio_to_staked(assignments, &stake_of);
|
||||
let winners = to_without_backing(winners);
|
||||
let support_map = to_support_map::<AccountId>(&winners, &staked).unwrap();
|
||||
let support_vec = to_supports(&winners, &staked).unwrap();
|
||||
|
||||
assert_eq!(support_map.evaluate(), support_vec.evaluate());
|
||||
}
|
||||
|
||||
mod assignment_convert_normalize {
|
||||
use super::*;
|
||||
#[test]
|
||||
|
||||
Reference in New Issue
Block a user