From dcce99c3346a42a3a29c8bc21a5ff0511bbd5dfc Mon Sep 17 00:00:00 2001 From: Andrew McKenzie Date: Tue, 11 Feb 2025 16:07:36 +0000 Subject: [PATCH] rename service provider selected to service provider override --- Cargo.lock | 10 +- coverage_map/src/indoor.rs | 2 +- coverage_map/src/lib.rs | 2 +- coverage_map/src/outdoor.rs | 2 +- coverage_point_calculator/src/hexes.rs | 6 +- coverage_point_calculator/src/lib.rs | 56 ++++----- .../tests/coverage_point_calculator.rs | 8 +- hex_assignments/src/assignment.rs | 24 ++-- hex_assignments/src/lib.rs | 108 +++++++++--------- ...lected.rs => service_provider_override.rs} | 20 ++-- .../40_service_provider_override-up.sql | 2 + .../40_service_provider_selected-up.sql | 2 - .../src/boosting_oracles/data_sets.rs | 54 ++++----- mobile_verifier/src/coverage.rs | 2 +- mobile_verifier/src/reward_shares.rs | 4 +- .../src/reward_shares/radio_reward_v2.rs | 2 +- .../src/rewarder/boosted_hex_eligibility.rs | 2 +- .../tests/integrations/boosting_oracles.rs | 60 +++++----- .../tests/integrations/common/mod.rs | 10 +- 19 files changed, 188 insertions(+), 188 deletions(-) rename hex_assignments/src/{service_provider_selected.rs => service_provider_override.rs} (50%) create mode 100644 mobile_verifier/migrations/40_service_provider_override-up.sql delete mode 100644 mobile_verifier/migrations/40_service_provider_selected-up.sql diff --git a/Cargo.lock b/Cargo.lock index b501f138f..09e614612 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1611,7 +1611,7 @@ checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" [[package]] name = "beacon" version = "0.1.0" -source = "git+https://github.com/helium/proto?branch=andymck%2Fsupport-sp-selected-assignment#22e0f8674c81257f449b52c72c53e84e633faebb" +source = "git+https://github.com/helium/proto?branch=andymck%2Fsupport-sp-selected-assignment#c03e15d09bc6d12e39cb74cf08bd1330f9fcc0c0" dependencies = [ "base64 0.21.7", "byteorder", @@ -1621,7 +1621,7 @@ dependencies = [ "rand_chacha 0.3.0", "rust_decimal", "serde", - "sha2 0.10.8", + "sha2 0.9.9", "thiserror", ] @@ -3816,7 +3816,7 @@ dependencies = [ [[package]] name = "helium-proto" version = "0.1.0" -source = "git+https://github.com/helium/proto?branch=andymck%2Fsupport-sp-selected-assignment#22e0f8674c81257f449b52c72c53e84e633faebb" +source = "git+https://github.com/helium/proto?branch=andymck%2Fsupport-sp-selected-assignment#c03e15d09bc6d12e39cb74cf08bd1330f9fcc0c0" dependencies = [ "bytes", "prost", @@ -6080,7 +6080,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "80b776a1b2dc779f5ee0641f8ade0125bc1298dd41a9a0c16d8bd57b42d222b1" dependencies = [ "bytes", - "heck 0.5.0", + "heck 0.4.0", "itertools", "log", "multimap", @@ -10005,7 +10005,7 @@ dependencies = [ "rand 0.8.5", "serde", "serde_json", - "sha2 0.10.8", + "sha2 0.9.9", "thiserror", "twox-hash", "xorf", diff --git a/coverage_map/src/indoor.rs b/coverage_map/src/indoor.rs index d9e63837a..831f2a19a 100644 --- a/coverage_map/src/indoor.rs +++ b/coverage_map/src/indoor.rs @@ -193,7 +193,7 @@ mod test { footfall: Assignment::A, urbanized: Assignment::A, landtype: Assignment::A, - service_provider_selected: Assignment::C, + service_provider_override: Assignment::C, } } diff --git a/coverage_map/src/lib.rs b/coverage_map/src/lib.rs index 6e1927d3b..1252ef423 100644 --- a/coverage_map/src/lib.rs +++ b/coverage_map/src/lib.rs @@ -324,7 +324,7 @@ mod test { footfall: Assignment::A, urbanized: Assignment::A, landtype: Assignment::A, - service_provider_selected: Assignment::C, + service_provider_override: Assignment::C, } } diff --git a/coverage_map/src/outdoor.rs b/coverage_map/src/outdoor.rs index b21d176f3..d6c096d94 100644 --- a/coverage_map/src/outdoor.rs +++ b/coverage_map/src/outdoor.rs @@ -154,7 +154,7 @@ mod test { footfall: Assignment::A, urbanized: Assignment::A, landtype: Assignment::A, - service_provider_selected: Assignment::C, + service_provider_override: Assignment::C, } } diff --git a/coverage_point_calculator/src/hexes.rs b/coverage_point_calculator/src/hexes.rs index 35fc64868..13d7e54e8 100644 --- a/coverage_point_calculator/src/hexes.rs +++ b/coverage_point_calculator/src/hexes.rs @@ -159,7 +159,7 @@ mod tests { footfall: Assignment::C, landtype: Assignment::C, urbanized: Assignment::C, - service_provider_selected: Assignment::C, + service_provider_override: Assignment::C, }, boosted: NonZeroU32::new(0), }; @@ -198,7 +198,7 @@ mod tests { footfall: Assignment::A, landtype: Assignment::A, urbanized: Assignment::A, - service_provider_selected: Assignment::C, + service_provider_override: Assignment::C, }, boosted: NonZeroU32::new(0), }; @@ -246,7 +246,7 @@ mod tests { footfall: Assignment::C, landtype: Assignment::C, urbanized: Assignment::C, - service_provider_selected: Assignment::C, + service_provider_override: Assignment::C, }, boosted: NonZeroU32::new(0), }; diff --git a/coverage_point_calculator/src/lib.rs b/coverage_point_calculator/src/lib.rs index 0c6c7a461..e7f94709d 100644 --- a/coverage_point_calculator/src/lib.rs +++ b/coverage_point_calculator/src/lib.rs @@ -410,13 +410,13 @@ mod tests { } #[rstest] - #[case::unboosted_sp_selected(0, dec!(400), true)] - #[case::minimum_boosted_sp_selected(1, dec!(400), true)] - #[case::boosted_sp_selected(5, dec!(2000), true)] - fn service_provider_selected_assignment_overrides_other_assignments( + #[case::unboosted_sp_override(0, dec!(400), true)] + #[case::minimum_boosted_sp_override(1, dec!(400), true)] + #[case::boosted_sp_override(5, dec!(2000), true)] + fn service_provider_override_assignment_overrides_other_assignments( #[case] boost_multiplier: u32, #[case] expected_points: Decimal, - #[case] service_provider_selected: bool, + #[case] service_provider_override: bool, ) { let wifi = CoveragePoints::new( RadioType::IndoorWifi, @@ -429,7 +429,7 @@ mod tests { hex: hex_location(), rank: 1, signal_level: SignalLevel::High, - assignments: assignments_from(Assignment::C, service_provider_selected), + assignments: assignments_from(Assignment::C, service_provider_override), boosted: NonZeroU32::new(boost_multiplier), }], OracleBoostingStatus::Eligible, @@ -455,7 +455,7 @@ mod tests { hex: hex_location(), rank: 1, signal_level: SignalLevel::High, - assignments: assignments_maximum_no_sp_selected(), + assignments: assignments_maximum_no_sp_override(), boosted: NonZeroU32::new(5), }], OracleBoostingStatus::Eligible, @@ -492,7 +492,7 @@ mod tests { hex: hex_location(), rank: 1, signal_level: SignalLevel::High, - assignments: assignments_maximum_no_sp_selected(), + assignments: assignments_maximum_no_sp_override(), boosted: NonZeroU32::new(5), }], OracleBoostingStatus::Eligible, @@ -531,7 +531,7 @@ mod tests { hex: hex_location(), rank: 1, signal_level: SignalLevel::High, - assignments: assignments_maximum_no_sp_selected(), + assignments: assignments_maximum_no_sp_override(), boosted: NonZeroU32::new(5), }], OracleBoostingStatus::Eligible, @@ -568,7 +568,7 @@ mod tests { hex: hex_location(), rank: 1, signal_level: SignalLevel::High, - assignments: assignments_maximum_no_sp_selected(), + assignments: assignments_maximum_no_sp_override(), boosted: None, }], OracleBoostingStatus::Eligible, @@ -629,7 +629,7 @@ mod tests { footfall: Assignment, landtype: Assignment, urbanized: Assignment, - service_provider_selected: Assignment, + service_provider_override: Assignment, ) -> RankedCoverage { RankedCoverage { hotspot_key: pubkey(), @@ -641,7 +641,7 @@ mod tests { footfall, landtype, urbanized, - service_provider_selected, + service_provider_override, }, boosted: None, } @@ -717,7 +717,7 @@ mod tests { hex: hex_location(), rank, signal_level: SignalLevel::High, - assignments: assignments_maximum_no_sp_selected(), + assignments: assignments_maximum_no_sp_override(), boosted: None, }], OracleBoostingStatus::Eligible, @@ -748,7 +748,7 @@ mod tests { hex: hex_location(), rank, signal_level: SignalLevel::High, - assignments: assignments_maximum_no_sp_selected(), + assignments: assignments_maximum_no_sp_override(), boosted: None, }, RankedCoverage { @@ -757,7 +757,7 @@ mod tests { hex: hex_location(), rank: 2, signal_level: SignalLevel::High, - assignments: assignments_maximum_no_sp_selected(), + assignments: assignments_maximum_no_sp_override(), boosted: None, }, RankedCoverage { @@ -766,7 +766,7 @@ mod tests { hex: hex_location(), rank: 42, signal_level: SignalLevel::High, - assignments: assignments_maximum_no_sp_selected(), + assignments: assignments_maximum_no_sp_override(), boosted: None, }, ], @@ -791,7 +791,7 @@ mod tests { hex: hex_location(), rank: 1, signal_level: SignalLevel::High, - assignments: assignments_maximum_no_sp_selected(), + assignments: assignments_maximum_no_sp_override(), boosted: None, }], OracleBoostingStatus::Eligible, @@ -812,7 +812,7 @@ mod tests { hex: hex_location(), rank: 1, signal_level: SignalLevel::High, - assignments: assignments_maximum_no_sp_selected(), + assignments: assignments_maximum_no_sp_override(), boosted: None, }, RankedCoverage { @@ -821,7 +821,7 @@ mod tests { hex: hex_location(), rank: 1, signal_level: SignalLevel::Low, - assignments: assignments_maximum_no_sp_selected(), + assignments: assignments_maximum_no_sp_override(), boosted: NonZeroU32::new(4), }, ]; @@ -860,7 +860,7 @@ mod tests { hex: hex_location(), rank: 1, signal_level, - assignments: assignments_maximum_no_sp_selected(), + assignments: assignments_maximum_no_sp_override(), boosted: None, }], OracleBoostingStatus::Eligible, @@ -888,7 +888,7 @@ mod tests { hex: hex_location(), rank: 1, signal_level, - assignments: assignments_maximum_no_sp_selected(), + assignments: assignments_maximum_no_sp_override(), boosted: None, }], OracleBoostingStatus::Eligible, @@ -918,7 +918,7 @@ mod tests { hex: hex_location(), rank: 1, signal_level, - assignments: assignments_maximum_no_sp_selected(), + assignments: assignments_maximum_no_sp_override(), boosted: None, }], OracleBoostingStatus::Eligible, @@ -946,7 +946,7 @@ mod tests { hex: hex_location(), rank: 1, signal_level, - assignments: assignments_maximum_no_sp_selected(), + assignments: assignments_maximum_no_sp_override(), boosted: None, }], OracleBoostingStatus::Eligible, @@ -986,17 +986,17 @@ mod tests { hextree::Cell::from_raw(0x8c2681a3064edff).unwrap() } - fn assignments_maximum_no_sp_selected() -> HexAssignments { + fn assignments_maximum_no_sp_override() -> HexAssignments { HexAssignments { footfall: Assignment::A, landtype: Assignment::A, urbanized: Assignment::A, - service_provider_selected: Assignment::C, + service_provider_override: Assignment::C, } } - fn assignments_from(assignment: Assignment, service_provider_selected: bool) -> HexAssignments { - let service_provider_selected_assignment = if service_provider_selected { + fn assignments_from(assignment: Assignment, service_provider_override: bool) -> HexAssignments { + let service_provider_override_assignment = if service_provider_override { Assignment::A } else { Assignment::C @@ -1005,7 +1005,7 @@ mod tests { footfall: assignment, landtype: assignment, urbanized: assignment, - service_provider_selected: service_provider_selected_assignment, + service_provider_override: service_provider_override_assignment, } } diff --git a/coverage_point_calculator/tests/coverage_point_calculator.rs b/coverage_point_calculator/tests/coverage_point_calculator.rs index 9cc7da3ee..b1b0ead4b 100644 --- a/coverage_point_calculator/tests/coverage_point_calculator.rs +++ b/coverage_point_calculator/tests/coverage_point_calculator.rs @@ -40,7 +40,7 @@ fn base_radio_coverage_points() { footfall: Assignment::A, landtype: Assignment::A, urbanized: Assignment::A, - service_provider_selected: Assignment::C, + service_provider_override: Assignment::C, }, boosted: NonZeroU32::new(0), }]; @@ -83,7 +83,7 @@ fn radios_with_coverage() { footfall: Assignment::A, landtype: Assignment::A, urbanized: Assignment::A, - service_provider_selected: Assignment::C, + service_provider_override: Assignment::C, }, boosted: NonZeroU32::new(0), }; @@ -428,7 +428,7 @@ fn ranked_coverage(hex: u64, rank: usize, signal_level: SignalLevel) -> RankedCo footfall: Assignment::A, landtype: Assignment::A, urbanized: Assignment::A, - service_provider_selected: Assignment::C, + service_provider_override: Assignment::C, }, boosted: None, signal_level, @@ -444,7 +444,7 @@ fn unranked_coverage(hex: u64, signal_level: SignalLevel) -> UnrankedCoverage { footfall: Assignment::A, landtype: Assignment::A, urbanized: Assignment::A, - service_provider_selected: Assignment::C, + service_provider_override: Assignment::C, }, } } diff --git a/hex_assignments/src/assignment.rs b/hex_assignments/src/assignment.rs index 0e9a8ed88..99da8de5e 100644 --- a/hex_assignments/src/assignment.rs +++ b/hex_assignments/src/assignment.rs @@ -10,7 +10,7 @@ pub struct HexAssignments { pub footfall: Assignment, pub landtype: Assignment, pub urbanized: Assignment, - pub service_provider_selected: Assignment, + pub service_provider_override: Assignment, } #[derive(Copy, Clone, PartialEq, Eq, Debug, sqlx::Type)] @@ -67,7 +67,7 @@ impl HexAssignments { footfall: None, landtype: None, urbanized: None, - service_provider_selected: None, + service_provider_override: None, } } @@ -76,12 +76,12 @@ impl HexAssignments { footfall, landtype, urbanized, - service_provider_selected, + service_provider_override, } = self; use Assignment::*; - match (footfall, landtype, urbanized, service_provider_selected) { - // service provider selected hex + match (footfall, landtype, urbanized, service_provider_override) { + // service provider override hex // Overrides other dataset assignments if set (_, _, _, A) => dec!(1.00), // yellow - POI ≥ 1 Urbanized @@ -119,7 +119,7 @@ pub struct HexAssignmentsBuilder { footfall: Option>, landtype: Option>, urbanized: Option>, - service_provider_selected: Option>, + service_provider_override: Option>, } impl HexAssignmentsBuilder { @@ -138,11 +138,11 @@ impl HexAssignmentsBuilder { self } - pub fn service_provider_selected( + pub fn service_provider_override( mut self, - service_provider_selected: &impl HexAssignment, + service_provider_override: &impl HexAssignment, ) -> Self { - self.service_provider_selected = Some(service_provider_selected.assignment(self.cell)); + self.service_provider_override = Some(service_provider_override.assignment(self.cell)); self } @@ -156,14 +156,14 @@ impl HexAssignmentsBuilder { let Some(urbanized) = self.urbanized else { anyhow::bail!("urbanized assignment not set"); }; - let Some(service_provider_selected) = self.service_provider_selected else { - anyhow::bail!("service_provider_selected assignment not set"); + let Some(service_provider_override) = self.service_provider_override else { + anyhow::bail!("service_provider_override assignment not set"); }; Ok(HexAssignments { footfall: footfall?, urbanized: urbanized?, landtype: landtype?, - service_provider_selected: service_provider_selected?, + service_provider_override: service_provider_override?, }) } } diff --git a/hex_assignments/src/lib.rs b/hex_assignments/src/lib.rs index 213171b65..0844df522 100644 --- a/hex_assignments/src/lib.rs +++ b/hex_assignments/src/lib.rs @@ -1,7 +1,7 @@ pub mod assignment; pub mod footfall; pub mod landtype; -pub mod service_provider_selected; +pub mod service_provider_override; pub mod urbanization; use std::collections::{HashMap, HashSet}; @@ -40,11 +40,11 @@ pub trait HexBoostDataAssignments: Send + Sync + 'static { #[derive(derive_builder::Builder)] #[builder(pattern = "owned")] -pub struct HexBoostData { +pub struct HexBoostData { pub footfall: Foot, pub landtype: Land, pub urbanization: Urban, - pub service_provider_selected: ServiceProviderSelected, + pub service_provider_override: ServiceProviderOverride, } impl HexBoostData { pub fn builder() -> HexBoostDataBuilder { @@ -52,20 +52,20 @@ impl HexBoostData { } } -impl HexBoostDataAssignments - for HexBoostData +impl HexBoostDataAssignments + for HexBoostData where Foot: HexAssignment, Land: HexAssignment, Urban: HexAssignment, - ServiceProviderSelected: HexAssignment, + ServiceProviderOverride: HexAssignment, { fn assignments(&self, cell: hextree::Cell) -> anyhow::Result { HexAssignments::builder(cell) .footfall(&self.footfall) .landtype(&self.landtype) .urbanized(&self.urbanization) - .service_provider_selected(&self.service_provider_selected) + .service_provider_override(&self.service_provider_override) .build() } } @@ -77,7 +77,7 @@ mod tests { use std::io::Cursor; use self::{ - footfall::Footfall, landtype::Landtype, service_provider_selected::ServiceProviderSelected, + footfall::Footfall, landtype::Landtype, service_provider_override::ServiceProviderOverride, urbanization::Urbanization, }; @@ -128,10 +128,10 @@ mod tests { let no_poi_grass_outside_us = hextree::Cell::from_raw(0x8c2681a306525ff)?; let no_poi_water_outside_us = hextree::Cell::from_raw(0x8c2681a306527ff)?; - // service provider selected - let poi_no_data_grass_not_urbanized_and_service_provider_selected = + // service provider override + let poi_no_data_grass_not_urbanized_and_service_provider_override = hextree::Cell::from_raw(0x8a446c214737fff)?; - let service_provider_selected_outside_us = hextree::Cell::from_raw(0x8a498c969177fff)?; + let service_provider_override_outside_us = hextree::Cell::from_raw(0x8a498c969177fff)?; // Footfall Data // POI - footfalls > 1 for a POI across hexes @@ -157,7 +157,7 @@ mod tests { footfall.insert(poi_no_data_grass_outside_us, 0); footfall.insert(poi_no_data_water_outside_us, 0); footfall.insert( - poi_no_data_grass_not_urbanized_and_service_provider_selected, + poi_no_data_grass_not_urbanized_and_service_provider_override, 0, ); @@ -193,7 +193,7 @@ mod tests { landtype.insert(no_poi_grass_outside_us, 30); landtype.insert(no_poi_water_outside_us, 80); landtype.insert( - poi_no_data_grass_not_urbanized_and_service_provider_selected, + poi_no_data_grass_not_urbanized_and_service_provider_override, 30, ); @@ -214,10 +214,10 @@ mod tests { // Service provider selected data let cells = vec![ - poi_no_data_grass_not_urbanized_and_service_provider_selected, - service_provider_selected_outside_us, + poi_no_data_grass_not_urbanized_and_service_provider_override, + service_provider_override_outside_us, ]; - let service_provider_selected = HexTreeSet::from_iter(cells); + let service_provider_override = HexTreeSet::from_iter(cells); let inside_usa = [ poi_built_urbanized, @@ -238,7 +238,7 @@ mod tests { no_poi_built_not_urbanized, no_poi_grass_not_urbanized, no_poi_water_not_urbanized, - poi_no_data_grass_not_urbanized_and_service_provider_selected, + poi_no_data_grass_not_urbanized_and_service_provider_override, ]; for inside_usa in inside_usa.into_iter() { urbanized.entry(inside_usa).or_insert(0); @@ -247,22 +247,22 @@ mod tests { let mut urbanized_buf = vec![]; let mut footfall_buff = vec![]; let mut landtype_buf = vec![]; - let mut service_provider_selected_buf = vec![]; + let mut service_provider_override_buf = vec![]; // Turn the HexTrees into DiskTrees urbanized.to_disktree(Cursor::new(&mut urbanized_buf), |w, v| w.write_all(&[*v]))?; footfall.to_disktree(Cursor::new(&mut footfall_buff), |w, v| w.write_all(&[*v]))?; landtype.to_disktree(Cursor::new(&mut landtype_buf), |w, v| w.write_all(&[*v]))?; - service_provider_selected - .to_disktree(Cursor::new(&mut service_provider_selected_buf), |_, _| { + service_provider_override + .to_disktree(Cursor::new(&mut service_provider_override_buf), |_, _| { Ok::<(), std::io::Error>(()) })?; let footfall = Footfall::new(Some(DiskTreeMap::with_buf(footfall_buff)?)); let landtype = Landtype::new(Some(DiskTreeMap::with_buf(landtype_buf)?)); let urbanization = Urbanization::new(Some(DiskTreeMap::with_buf(urbanized_buf)?)); - let service_provider_selected = ServiceProviderSelected::new(Some(DiskTreeMap::with_buf( - service_provider_selected_buf, + let service_provider_override = ServiceProviderOverride::new(Some(DiskTreeMap::with_buf( + service_provider_override_buf, )?)); // Let the testing commence @@ -270,7 +270,7 @@ mod tests { .footfall(footfall) .landtype(landtype) .urbanization(urbanization) - .service_provider_selected(service_provider_selected) + .service_provider_override(service_provider_override) .build()?; // NOTE(mj): formatting ignored to make it easier to see the expected change in assignments. @@ -280,45 +280,45 @@ mod tests { { use Assignment::*; // yellow - assert_eq!(HexAssignments { footfall: A, landtype: A, urbanized: A, service_provider_selected: C}, data.assignments(poi_built_urbanized)?); - assert_eq!(HexAssignments { footfall: A, landtype: B, urbanized: A, service_provider_selected: C }, data.assignments(poi_grass_urbanized)?); - assert_eq!(HexAssignments { footfall: A, landtype: C, urbanized: A, service_provider_selected: C }, data.assignments(poi_water_urbanized)?); + assert_eq!(HexAssignments { footfall: A, landtype: A, urbanized: A, service_provider_override: C}, data.assignments(poi_built_urbanized)?); + assert_eq!(HexAssignments { footfall: A, landtype: B, urbanized: A, service_provider_override: C }, data.assignments(poi_grass_urbanized)?); + assert_eq!(HexAssignments { footfall: A, landtype: C, urbanized: A, service_provider_override: C }, data.assignments(poi_water_urbanized)?); // orange - assert_eq!(HexAssignments { footfall: A, landtype: A, urbanized: B, service_provider_selected: C }, data.assignments(poi_built_not_urbanized)?); - assert_eq!(HexAssignments { footfall: A, landtype: B, urbanized: B, service_provider_selected: C }, data.assignments(poi_grass_not_urbanized)?); - assert_eq!(HexAssignments { footfall: A, landtype: C, urbanized: B, service_provider_selected: C }, data.assignments(poi_water_not_urbanized)?); + assert_eq!(HexAssignments { footfall: A, landtype: A, urbanized: B, service_provider_override: C }, data.assignments(poi_built_not_urbanized)?); + assert_eq!(HexAssignments { footfall: A, landtype: B, urbanized: B, service_provider_override: C }, data.assignments(poi_grass_not_urbanized)?); + assert_eq!(HexAssignments { footfall: A, landtype: C, urbanized: B, service_provider_override: C }, data.assignments(poi_water_not_urbanized)?); // light green - assert_eq!(HexAssignments { footfall: B, landtype: A, urbanized: A, service_provider_selected: C }, data.assignments(poi_no_data_built_urbanized)?); - assert_eq!(HexAssignments { footfall: B, landtype: B, urbanized: A, service_provider_selected: C }, data.assignments(poi_no_data_grass_urbanized)?); - assert_eq!(HexAssignments { footfall: B, landtype: C, urbanized: A, service_provider_selected: C }, data.assignments(poi_no_data_water_urbanized)?); + assert_eq!(HexAssignments { footfall: B, landtype: A, urbanized: A, service_provider_override: C }, data.assignments(poi_no_data_built_urbanized)?); + assert_eq!(HexAssignments { footfall: B, landtype: B, urbanized: A, service_provider_override: C }, data.assignments(poi_no_data_grass_urbanized)?); + assert_eq!(HexAssignments { footfall: B, landtype: C, urbanized: A, service_provider_override: C }, data.assignments(poi_no_data_water_urbanized)?); // green - assert_eq!(HexAssignments { footfall: B, landtype: A, urbanized: B, service_provider_selected: C }, data.assignments(poi_no_data_built_not_urbanized)?); - assert_eq!(HexAssignments { footfall: B, landtype: B, urbanized: B, service_provider_selected: C }, data.assignments(poi_no_data_grass_not_urbanized)?); - assert_eq!(HexAssignments { footfall: B, landtype: C, urbanized: B, service_provider_selected: C }, data.assignments(poi_no_data_water_not_urbanized)?); + assert_eq!(HexAssignments { footfall: B, landtype: A, urbanized: B, service_provider_override: C }, data.assignments(poi_no_data_built_not_urbanized)?); + assert_eq!(HexAssignments { footfall: B, landtype: B, urbanized: B, service_provider_override: C }, data.assignments(poi_no_data_grass_not_urbanized)?); + assert_eq!(HexAssignments { footfall: B, landtype: C, urbanized: B, service_provider_override: C }, data.assignments(poi_no_data_water_not_urbanized)?); // light blue - assert_eq!(HexAssignments { footfall: C, landtype: A, urbanized: A, service_provider_selected: C }, data.assignments(no_poi_built_urbanized)?); - assert_eq!(HexAssignments { footfall: C, landtype: B, urbanized: A, service_provider_selected: C }, data.assignments(no_poi_grass_urbanized)?); - assert_eq!(HexAssignments { footfall: C, landtype: C, urbanized: A, service_provider_selected: C }, data.assignments(no_poi_water_urbanized)?); + assert_eq!(HexAssignments { footfall: C, landtype: A, urbanized: A, service_provider_override: C }, data.assignments(no_poi_built_urbanized)?); + assert_eq!(HexAssignments { footfall: C, landtype: B, urbanized: A, service_provider_override: C }, data.assignments(no_poi_grass_urbanized)?); + assert_eq!(HexAssignments { footfall: C, landtype: C, urbanized: A, service_provider_override: C }, data.assignments(no_poi_water_urbanized)?); // dark blue - assert_eq!(HexAssignments { footfall: C, landtype: A, urbanized: B, service_provider_selected: C }, data.assignments(no_poi_built_not_urbanized)?); - assert_eq!(HexAssignments { footfall: C, landtype: B, urbanized: B, service_provider_selected: C }, data.assignments(no_poi_grass_not_urbanized)?); - assert_eq!(HexAssignments { footfall: C, landtype: C, urbanized: B, service_provider_selected: C }, data.assignments(no_poi_water_not_urbanized)?); + assert_eq!(HexAssignments { footfall: C, landtype: A, urbanized: B, service_provider_override: C }, data.assignments(no_poi_built_not_urbanized)?); + assert_eq!(HexAssignments { footfall: C, landtype: B, urbanized: B, service_provider_override: C }, data.assignments(no_poi_grass_not_urbanized)?); + assert_eq!(HexAssignments { footfall: C, landtype: C, urbanized: B, service_provider_override: C }, data.assignments(no_poi_water_not_urbanized)?); // gray - assert_eq!(HexAssignments { footfall: A, landtype: A, urbanized: C, service_provider_selected: C }, data.assignments(poi_built_outside_us)?); - assert_eq!(HexAssignments { footfall: A, landtype: B, urbanized: C, service_provider_selected: C }, data.assignments(poi_grass_outside_us)?); - assert_eq!(HexAssignments { footfall: A, landtype: C, urbanized: C, service_provider_selected: C }, data.assignments(poi_water_outside_us)?); - assert_eq!(HexAssignments { footfall: B, landtype: A, urbanized: C, service_provider_selected: C }, data.assignments(poi_no_data_built_outside_us)?); - assert_eq!(HexAssignments { footfall: B, landtype: B, urbanized: C, service_provider_selected: C }, data.assignments(poi_no_data_grass_outside_us)?); - assert_eq!(HexAssignments { footfall: B, landtype: C, urbanized: C, service_provider_selected: C }, data.assignments(poi_no_data_water_outside_us)?); - assert_eq!(HexAssignments { footfall: C, landtype: A, urbanized: C, service_provider_selected: C }, data.assignments(no_poi_built_outside_us)?); - assert_eq!(HexAssignments { footfall: C, landtype: B, urbanized: C, service_provider_selected: C }, data.assignments(no_poi_grass_outside_us)?); - assert_eq!(HexAssignments { footfall: C, landtype: C, urbanized: C, service_provider_selected: C }, data.assignments(no_poi_water_outside_us)?); - // service provider selected - assert_eq!(HexAssignments { footfall: B, landtype: B, urbanized: B, service_provider_selected: A }, data.assignments(poi_no_data_grass_not_urbanized_and_service_provider_selected)?); - assert_eq!(HexAssignments { footfall: C, landtype: C, urbanized: C, service_provider_selected: A }, data.assignments(service_provider_selected_outside_us)?); + assert_eq!(HexAssignments { footfall: A, landtype: A, urbanized: C, service_provider_override: C }, data.assignments(poi_built_outside_us)?); + assert_eq!(HexAssignments { footfall: A, landtype: B, urbanized: C, service_provider_override: C }, data.assignments(poi_grass_outside_us)?); + assert_eq!(HexAssignments { footfall: A, landtype: C, urbanized: C, service_provider_override: C }, data.assignments(poi_water_outside_us)?); + assert_eq!(HexAssignments { footfall: B, landtype: A, urbanized: C, service_provider_override: C }, data.assignments(poi_no_data_built_outside_us)?); + assert_eq!(HexAssignments { footfall: B, landtype: B, urbanized: C, service_provider_override: C }, data.assignments(poi_no_data_grass_outside_us)?); + assert_eq!(HexAssignments { footfall: B, landtype: C, urbanized: C, service_provider_override: C }, data.assignments(poi_no_data_water_outside_us)?); + assert_eq!(HexAssignments { footfall: C, landtype: A, urbanized: C, service_provider_override: C }, data.assignments(no_poi_built_outside_us)?); + assert_eq!(HexAssignments { footfall: C, landtype: B, urbanized: C, service_provider_override: C }, data.assignments(no_poi_grass_outside_us)?); + assert_eq!(HexAssignments { footfall: C, landtype: C, urbanized: C, service_provider_override: C }, data.assignments(no_poi_water_outside_us)?); + // service provider override + assert_eq!(HexAssignments { footfall: B, landtype: B, urbanized: B, service_provider_override: A }, data.assignments(poi_no_data_grass_not_urbanized_and_service_provider_override)?); + assert_eq!(HexAssignments { footfall: C, landtype: C, urbanized: C, service_provider_override: A }, data.assignments(service_provider_override_outside_us)?); // never inserted - assert_eq!(HexAssignments { footfall: C, landtype: C, urbanized: C, service_provider_selected: C }, data.assignments(unknown_cell)?); + assert_eq!(HexAssignments { footfall: C, landtype: C, urbanized: C, service_provider_override: C }, data.assignments(unknown_cell)?); }; Ok(()) diff --git a/hex_assignments/src/service_provider_selected.rs b/hex_assignments/src/service_provider_override.rs similarity index 50% rename from hex_assignments/src/service_provider_selected.rs rename to hex_assignments/src/service_provider_override.rs index 579196b26..2c51eea49 100644 --- a/hex_assignments/src/service_provider_selected.rs +++ b/hex_assignments/src/service_provider_override.rs @@ -3,32 +3,32 @@ use hextree::disktree::DiskTreeMap; use super::{Assignment, HexAssignment}; -pub struct ServiceProviderSelected { - pub service_provider_selected: Option, +pub struct ServiceProviderOverride { + pub service_provider_override: Option, pub timestamp: Option>, } -impl ServiceProviderSelected { - pub fn new(service_provider_selected: Option) -> Self { +impl ServiceProviderOverride { + pub fn new(service_provider_override: Option) -> Self { Self { - service_provider_selected, + service_provider_override, timestamp: None, } } } -impl Default for ServiceProviderSelected { +impl Default for ServiceProviderOverride { fn default() -> Self { Self::new(None) } } -impl HexAssignment for ServiceProviderSelected { +impl HexAssignment for ServiceProviderOverride { fn assignment(&self, cell: hextree::Cell) -> anyhow::Result { - let Some(ref service_provider_selected) = self.service_provider_selected else { - anyhow::bail!("No service provider selected hex data set has been loaded"); + let Some(ref service_provider_override) = self.service_provider_override else { + anyhow::bail!("No service provider override hex data set has been loaded"); }; - match service_provider_selected.contains(cell) { + match service_provider_override.contains(cell) { Ok(true) => Ok(Assignment::A), Ok(false) => Ok(Assignment::C), _ => Ok(Assignment::C), diff --git a/mobile_verifier/migrations/40_service_provider_override-up.sql b/mobile_verifier/migrations/40_service_provider_override-up.sql new file mode 100644 index 000000000..36846dd71 --- /dev/null +++ b/mobile_verifier/migrations/40_service_provider_override-up.sql @@ -0,0 +1,2 @@ +ALTER TABLE hexes ADD COLUMN IF NOT EXISTS service_provider_override oracle_assignment; +ALTER TYPE data_set_type ADD VALUE IF NOT EXISTS 'service_provider_override' AFTER 'landtype'; diff --git a/mobile_verifier/migrations/40_service_provider_selected-up.sql b/mobile_verifier/migrations/40_service_provider_selected-up.sql deleted file mode 100644 index b434f58d1..000000000 --- a/mobile_verifier/migrations/40_service_provider_selected-up.sql +++ /dev/null @@ -1,2 +0,0 @@ -ALTER TABLE hexes ADD COLUMN IF NOT EXISTS service_provider_selected oracle_assignment NULL DEFAULT 'c'; -ALTER TYPE data_set_type ADD VALUE IF NOT EXISTS 'service_provider_selected' AFTER 'landtype'; diff --git a/mobile_verifier/src/boosting_oracles/data_sets.rs b/mobile_verifier/src/boosting_oracles/data_sets.rs index 8e02d979b..efb03c489 100644 --- a/mobile_verifier/src/boosting_oracles/data_sets.rs +++ b/mobile_verifier/src/boosting_oracles/data_sets.rs @@ -33,7 +33,7 @@ use crate::{ use hex_assignments::{ assignment::HexAssignments, footfall::Footfall, landtype::Landtype, - service_provider_selected::ServiceProviderSelected, urbanization::Urbanization, HexAssignment, + service_provider_override::ServiceProviderOverride, urbanization::Urbanization, HexAssignment, HexBoostData, }; @@ -169,21 +169,21 @@ impl DataSet for Urbanization { } #[async_trait::async_trait] -impl DataSet for ServiceProviderSelected { - const TYPE: DataSetType = DataSetType::ServiceProviderSelected; +impl DataSet for ServiceProviderOverride { + const TYPE: DataSetType = DataSetType::ServiceProviderOverride; fn timestamp(&self) -> Option> { self.timestamp } fn update(&mut self, path: &Path, time_to_use: DateTime) -> anyhow::Result<()> { - self.service_provider_selected = Some(DiskTreeMap::open(path)?); + self.service_provider_override = Some(DiskTreeMap::open(path)?); self.timestamp = Some(time_to_use); Ok(()) } fn is_ready(&self) -> bool { - self.service_provider_selected.is_some() + self.service_provider_override.is_some() } } @@ -197,7 +197,7 @@ where h.urbanization.is_ready() && h.footfall.is_ready() && h.landtype.is_ready() - && h.service_provider_selected.is_ready() + && h.service_provider_override.is_ready() } pub struct DataSetDownloaderDaemon { @@ -277,7 +277,7 @@ impl Footfall, Landtype, Urbanization, - ServiceProviderSelected, + ServiceProviderOverride, FileSinkClient, > { @@ -301,12 +301,12 @@ impl let urbanization = Urbanization::new(None); let footfall = Footfall::new(None); let landtype = Landtype::new(None); - let service_provider_selected = ServiceProviderSelected::new(None); + let service_provider_override = ServiceProviderOverride::new(None); let hex_boost_data = HexBoostData::builder() .footfall(footfall) .landtype(landtype) .urbanization(urbanization) - .service_provider_selected(service_provider_selected) + .service_provider_override(service_provider_override) .build()?; let data_set_downloader = Self::new( @@ -370,9 +370,9 @@ where .landtype .fetch_next_available_data_set(&self.store, &self.pool, &self.data_set_directory) .await?; - let new_service_provider_selected = self + let new_service_provider_override = self .data_sets - .service_provider_selected + .service_provider_override .fetch_next_available_data_set(&self.store, &self.pool, &self.data_set_directory) .await?; @@ -381,7 +381,7 @@ where let new_data_set = new_urbanized.is_some() || new_footfall.is_some() || new_landtype.is_some() - || new_service_provider_selected.is_some(); + || new_service_provider_override.is_some(); if is_hex_boost_data_ready(&self.data_sets) && new_data_set { tracing::info!("Processing new data sets"); self.data_set_processor @@ -417,14 +417,14 @@ where ) .await?; } - if let Some(new_service_provider_selected) = new_service_provider_selected { - new_service_provider_selected + if let Some(new_service_provider_override) = new_service_provider_override { + new_service_provider_override .mark_as_processed(&self.pool) .await?; delete_old_data_sets( &self.data_set_directory, - DataSetType::ServiceProviderSelected, - new_service_provider_selected.time_to_use, + DataSetType::ServiceProviderOverride, + new_service_provider_override.time_to_use, ) .await?; } @@ -446,7 +446,7 @@ where .fetch_first_data_set(&self.pool, &self.data_set_directory) .await?; self.data_sets - .service_provider_selected + .service_provider_override .fetch_first_data_set(&self.pool, &self.data_set_directory) .await?; // Attempt to fill in any unassigned hexes. This is for the edge case in @@ -550,7 +550,7 @@ pub enum DataSetType { Urbanization, Footfall, Landtype, - ServiceProviderSelected, + ServiceProviderOverride, } impl DataSetType { @@ -559,7 +559,7 @@ impl DataSetType { Self::Urbanization => "urbanization", Self::Footfall => "footfall", Self::Landtype => "landtype", - Self::ServiceProviderSelected => "service_provider_selected", + Self::ServiceProviderOverride => "service_provider_override", } } @@ -568,7 +568,7 @@ impl DataSetType { Self::Urbanization => "res10", Self::Footfall => "res10", Self::Landtype => "res10", - Self::ServiceProviderSelected => "res12", + Self::ServiceProviderOverride => "res12", } } } @@ -779,7 +779,7 @@ pub mod db { urbanized IS NULL OR footfall IS NULL OR landtype IS NULL - OR service_provider_selected IS NULL + OR service_provider_override IS NULL ) "#, ) @@ -804,7 +804,7 @@ pub mod db { urbanized IS NULL OR footfall IS NULL OR landtype IS NULL - OR service_provider_selected IS NULL", + OR service_provider_override IS NULL", ) .fetch(pool) } @@ -852,7 +852,7 @@ impl AssignedCoverageObjects { urbanized: hex.assignments.urbanized.into(), footfall: hex.assignments.footfall.into(), landtype: hex.assignments.landtype.into(), - service_provider_selected: hex.assignments.service_provider_selected.into(), + service_provider_override: hex.assignments.service_provider_override.into(), assignment_multiplier, } }) @@ -880,7 +880,7 @@ impl AssignedCoverageObjects { let assigned_hexes: Vec<_> = self.coverage_objs.into_values().flatten().collect(); for assigned_hexes in assigned_hexes.chunks(ASSIGNMENTS_MAX_BATCH_ENTRIES) { QueryBuilder::new( - "INSERT INTO hexes (uuid, hex, signal_level, signal_power, footfall, landtype, urbanized, service_provider_selected)", + "INSERT INTO hexes (uuid, hex, signal_level, signal_power, footfall, landtype, urbanized, service_provider_override)", ) .push_values(assigned_hexes, |mut b, hex| { b.push_bind(hex.uuid) @@ -890,7 +890,7 @@ impl AssignedCoverageObjects { .push_bind(hex.assignments.footfall) .push_bind(hex.assignments.landtype) .push_bind(hex.assignments.urbanized) - .push_bind(hex.assignments.service_provider_selected); + .push_bind(hex.assignments.service_provider_override); }) .push( r#" @@ -898,7 +898,7 @@ impl AssignedCoverageObjects { footfall = EXCLUDED.footfall, landtype = EXCLUDED.landtype, urbanized = EXCLUDED.urbanized, - service_provider_selected = EXCLUDED.service_provider_selected + service_provider_override = EXCLUDED.service_provider_override "#, ) .build() @@ -934,7 +934,7 @@ impl UnassignedHex { .footfall(&data_sets.footfall) .landtype(&data_sets.landtype) .urbanized(&data_sets.urbanization) - .service_provider_selected(&data_sets.service_provider_selected) + .service_provider_override(&data_sets.service_provider_override) .build()?; Ok(AssignedHex { uuid: self.uuid, diff --git a/mobile_verifier/src/coverage.rs b/mobile_verifier/src/coverage.rs index 53564c741..28b8a771f 100644 --- a/mobile_verifier/src/coverage.rs +++ b/mobile_verifier/src/coverage.rs @@ -440,7 +440,7 @@ impl CoveredHexStream for Pool { Ok( sqlx::query_as( r#" - SELECT co.uuid, h.hex, co.indoor, co.radio_key, h.signal_level, h.signal_power, co.coverage_claim_time, co.inserted_at, h.urbanized, h.footfall, h.landtype, h.service_provider_selected + SELECT co.uuid, h.hex, co.indoor, co.radio_key, h.signal_level, h.signal_power, co.coverage_claim_time, co.inserted_at, h.urbanized, h.footfall, h.landtype, h.service_provider_override FROM coverage_objects co INNER JOIN hexes h on co.uuid = h.uuid WHERE co.radio_key = $1 diff --git a/mobile_verifier/src/reward_shares.rs b/mobile_verifier/src/reward_shares.rs index 17b3fe8a1..659920192 100644 --- a/mobile_verifier/src/reward_shares.rs +++ b/mobile_verifier/src/reward_shares.rs @@ -835,7 +835,7 @@ mod test { footfall: Assignment::A, urbanized: Assignment::A, landtype: Assignment::A, - service_provider_selected: Assignment::C, + service_provider_override: Assignment::C, } } @@ -844,7 +844,7 @@ mod test { footfall: Assignment::C, urbanized: Assignment::C, landtype: Assignment::C, - service_provider_selected: Assignment::C, + service_provider_override: Assignment::C, } } diff --git a/mobile_verifier/src/reward_shares/radio_reward_v2.rs b/mobile_verifier/src/reward_shares/radio_reward_v2.rs index 7f4854365..a93f96795 100644 --- a/mobile_verifier/src/reward_shares/radio_reward_v2.rs +++ b/mobile_verifier/src/reward_shares/radio_reward_v2.rs @@ -100,7 +100,7 @@ impl RadioRewardV2Ext for coverage_point_calculator::CoveragePoints { urbanized: covered_hex.assignments.urbanized.into(), footfall: covered_hex.assignments.footfall.into(), landtype: covered_hex.assignments.landtype.into(), - service_provider_selected: covered_hex.assignments.service_provider_selected.into(), + service_provider_override: covered_hex.assignments.service_provider_override.into(), assignment_multiplier: Some(covered_hex.assignment_multiplier.proto_decimal()), rank: covered_hex.rank as u32, rank_multiplier: Some(covered_hex.rank_multiplier.proto_decimal()), diff --git a/mobile_verifier/src/rewarder/boosted_hex_eligibility.rs b/mobile_verifier/src/rewarder/boosted_hex_eligibility.rs index cdb8178d9..3a0d8dff9 100644 --- a/mobile_verifier/src/rewarder/boosted_hex_eligibility.rs +++ b/mobile_verifier/src/rewarder/boosted_hex_eligibility.rs @@ -196,7 +196,7 @@ mod tests { footfall: Assignment::A, landtype: Assignment::A, urbanized, - service_provider_selected: Assignment::C, + service_provider_override: Assignment::C, }, } } diff --git a/mobile_verifier/tests/integrations/boosting_oracles.rs b/mobile_verifier/tests/integrations/boosting_oracles.rs index 654c25aff..29df740ef 100644 --- a/mobile_verifier/tests/integrations/boosting_oracles.rs +++ b/mobile_verifier/tests/integrations/boosting_oracles.rs @@ -114,7 +114,7 @@ async fn test_footfall_and_urbanization_report(pool: PgPool) -> anyhow::Result<( footfall: Assignment, landtype: Assignment, urbanized: Assignment, - service_provider_selected: Assignment, + service_provider_override: Assignment, assignment_multiplier: u32, ) -> OracleBoostingHexAssignment { let loc = cell.to_string(); @@ -125,7 +125,7 @@ async fn test_footfall_and_urbanization_report(pool: PgPool) -> anyhow::Result<( urbanized: urbanized.into(), footfall: footfall.into(), landtype: landtype.into(), - service_provider_selected: service_provider_selected.into(), + service_provider_override: service_provider_override.into(), } } @@ -188,14 +188,14 @@ async fn test_footfall_and_urbanization_report(pool: PgPool) -> anyhow::Result<( let mut footfall = HashMap::::new(); let mut urbanized = HashMap::::new(); let mut landtype = HashMap::::new(); - let mut service_provider_selected = HashSet::::new(); + let mut service_provider_override = HashSet::::new(); for hex in hexes.iter() { urbanized.insert(hex_cell(&hex.location), hex.urbanized().into()); footfall.insert(hex_cell(&hex.location), hex.footfall().into()); landtype.insert(hex_cell(&hex.location), hex.landtype().into()); - if hex.service_provider_selected == Assignment::A as i32 { - service_provider_selected.insert(hex_cell(&hex.location)); + if hex.service_provider_override == Assignment::A as i32 { + service_provider_override.insert(hex_cell(&hex.location)); } } @@ -212,7 +212,7 @@ async fn test_footfall_and_urbanization_report(pool: PgPool) -> anyhow::Result<( .footfall(footfall) .landtype(landtype) .urbanization(urbanized) - .service_provider_selected(service_provider_selected) + .service_provider_override(service_provider_override) .build()?; let oba = common::set_unassigned_oracle_boosting_assignments(&pool, &hex_boost_data).await?; @@ -223,7 +223,7 @@ async fn test_footfall_and_urbanization_report(pool: PgPool) -> anyhow::Result<( } #[sqlx::test] -async fn test_footfall_and_urbanization_and_landtype_and_service_provider_selected( +async fn test_footfall_and_urbanization_and_landtype_and_service_provider_override( pool: PgPool, ) -> anyhow::Result<()> { let end: DateTime = Utc::now() + Duration::minutes(10); @@ -234,7 +234,7 @@ async fn test_footfall_and_urbanization_and_landtype_and_service_provider_select landtype: Assignment, footfall: Assignment, urbanized: Assignment, - service_provider_selected: Assignment, + service_provider_override: Assignment, expected_score: Decimal, } @@ -244,7 +244,7 @@ async fn test_footfall_and_urbanization_and_landtype_and_service_provider_select footfall: Assignment, landtype: Assignment, urbanized: Assignment, - service_provider_selected: Assignment, + service_provider_override: Assignment, expected_score: usize, ) -> Self { let loc = cell.to_string(); @@ -254,7 +254,7 @@ async fn test_footfall_and_urbanization_and_landtype_and_service_provider_select landtype, footfall, urbanized, - service_provider_selected, + service_provider_override, expected_score: Decimal::from(expected_score), } } @@ -265,31 +265,31 @@ async fn test_footfall_and_urbanization_and_landtype_and_service_provider_select let mut cell = CellIndex::try_from(0x8c2681a3064d9ff)?; use hex_assignments::Assignment::*; vec![ - // yellow - POI ≥ 1 Urbanized, not service provider selected + // yellow - POI ≥ 1 Urbanized, not service provider override TestHex::new(&mut cell, A, A, A, C, 400), TestHex::new(&mut cell, A, B, A, C, 400), TestHex::new(&mut cell, A, C, A, C, 400), - // orange - POI ≥ 1 Not Urbanized, not service provider selected + // orange - POI ≥ 1 Not Urbanized, not service provider override TestHex::new(&mut cell, A, A, B, C, 400), TestHex::new(&mut cell, A, B, B, C, 400), TestHex::new(&mut cell, A, C, B, C, 400), - // light green - Point of Interest Urbanized, not service provider selected + // light green - Point of Interest Urbanized, not service provider override TestHex::new(&mut cell, B, A, A, C, 280), TestHex::new(&mut cell, B, B, A, C, 280), TestHex::new(&mut cell, B, C, A, C, 280), - // dark green - Point of Interest Not Urbanized, not service provider selected + // dark green - Point of Interest Not Urbanized, not service provider override TestHex::new(&mut cell, B, A, B, C, 200), TestHex::new(&mut cell, B, B, B, C, 200), TestHex::new(&mut cell, B, C, B, C, 200), - // light blue - No POI Urbanized, not service provider selected + // light blue - No POI Urbanized, not service provider override TestHex::new(&mut cell, C, A, A, C, 160), TestHex::new(&mut cell, C, B, A, C, 120), TestHex::new(&mut cell, C, C, A, C, 20), - // dark blue - No POI Not Urbanized, not service provider selected + // dark blue - No POI Not Urbanized, not service provider override TestHex::new(&mut cell, C, A, B, C, 80), TestHex::new(&mut cell, C, B, B, C, 60), TestHex::new(&mut cell, C, C, B, C, 12), - // gray - Outside of USA, not service provider selected + // gray - Outside of USA, not service provider override TestHex::new(&mut cell, A, A, C, C, 0), TestHex::new(&mut cell, A, B, C, C, 0), TestHex::new(&mut cell, A, C, C, C, 0), @@ -299,7 +299,7 @@ async fn test_footfall_and_urbanization_and_landtype_and_service_provider_select TestHex::new(&mut cell, C, A, C, C, 0), TestHex::new(&mut cell, C, B, C, C, 0), TestHex::new(&mut cell, C, C, C, C, 0), - // gray - Outside of USA, IS service provider selected + // gray - Outside of USA, IS service provider override TestHex::new(&mut cell, C, C, C, A, 100), ] }; @@ -311,14 +311,14 @@ async fn test_footfall_and_urbanization_and_landtype_and_service_provider_select let mut footfall = HashMap::new(); let mut landtype = HashMap::new(); let mut urbanized = HashMap::new(); - let mut service_provider_selected = HashSet::::new(); + let mut service_provider_override = HashSet::::new(); for hex in hexes.iter() { footfall.insert(hex_cell(&hex.loc), hex.footfall); urbanized.insert(hex_cell(&hex.loc), hex.urbanized); landtype.insert(hex_cell(&hex.loc), hex.landtype); - if hex.service_provider_selected == Assignment::A { - service_provider_selected.insert(hex_cell(&hex.loc)); + if hex.service_provider_override == Assignment::A { + service_provider_override.insert(hex_cell(&hex.loc)); } } @@ -353,7 +353,7 @@ async fn test_footfall_and_urbanization_and_landtype_and_service_provider_select .footfall(footfall) .landtype(landtype) .urbanization(urbanized) - .service_provider_selected(service_provider_selected) + .service_provider_override(service_provider_override) .build()?; let _ = common::set_unassigned_oracle_boosting_assignments(&pool, &hex_boost_data).await?; @@ -421,31 +421,31 @@ async fn test_footfall_and_urbanization_and_landtype_and_service_provider_select // (Footfall, Landtype, Urbanized, Service Provider Selected) // Hex | Assignment | Points Equation | Sum // ----------------------------------------------- - // == yellow - POI ≥ 1 Urbanized, not service provider selected + // == yellow - POI ≥ 1 Urbanized, not service provider override // hex1 | A, A, A, C | 100 * 1 | 100 // hex2 | A, B, A, C | 100 * 1 | 100 // hex3 | A, C, A, C | 100 * 1 | 100 - // == orange - POI ≥ 1 Not Urbanized, not service provider selected + // == orange - POI ≥ 1 Not Urbanized, not service provider override // hex4 | A, A, B, C | 100 * 1 | 100 // hex5 | A, B, B, C | 100 * 1 | 100 // hex6 | A, C, B, C | 100 * 1 | 100 - // == light green - Point of Interest Urbanized, not service provider selected + // == light green - Point of Interest Urbanized, not service provider override // hex7 | B, A, A, C | 100 * 0.70 | 70 // hex8 | B, B, A, C | 100 * 0.70 | 70 // hex9 | B, C, A, C | 100 * 0.70 | 70 - // == dark green - Point of Interest Not Urbanized, not service provider selected + // == dark green - Point of Interest Not Urbanized, not service provider override // hex10 | B, A, B, C | 100 * 0.50 | 50 // hex11 | B, B, B, C | 100 * 0.50 | 50 // hex12 | B, C, B, C | 100 * 0.50 | 50 - // == light blue - No POI Urbanized, not service provider selected + // == light blue - No POI Urbanized, not service provider override // hex13 | C, A, A, C | 100 * 0.40 | 40 // hex14 | C, B, A, C | 100 * 0.30 | 30 // hex15 | C, C, A, C | 100 * 0.05 | 5 - // == dark blue - No POI Not Urbanized, not service provider selected + // == dark blue - No POI Not Urbanized, not service provider override // hex16 | C, A, B, C | 100 * 0.20 | 20 // hex17 | C, B, B, C | 100 * 0.15 | 15 // hex18 | C, C, B, C | 100 * 0.03 | 3 - // == gray - Outside of USA, not service provider selected + // == gray - Outside of USA, not service provider override // hex19 | A, A, C, C | 100 * 0.00 | 0 // hex20 | A, B, C, C | 100 * 0.00 | 0 // hex21 | A, C, C, C | 100 * 0.00 | 0 @@ -455,7 +455,7 @@ async fn test_footfall_and_urbanization_and_landtype_and_service_provider_select // hex25 | C, A, C, C | 100 * 0.00 | 0 // hex26 | C, B, C, C | 100 * 0.00 | 0 // hex27 | C, C, C, C | 100 * 0.00 | 0 - // == gray - Outside of USA, IS service provider selected + // == gray - Outside of USA, IS service provider override // hex28 | A, A, C, A | 100 * 1.00 | 100 // ----------------------------------------------- diff --git a/mobile_verifier/tests/integrations/common/mod.rs b/mobile_verifier/tests/integrations/common/mod.rs index e435f6ae2..d4fa4bc7a 100644 --- a/mobile_verifier/tests/integrations/common/mod.rs +++ b/mobile_verifier/tests/integrations/common/mod.rs @@ -273,7 +273,7 @@ pub fn mock_hex_boost_data_default( .urbanization(Assignment::A) .footfall(Assignment::A) .landtype(Assignment::A) - .service_provider_selected(Assignment::C) + .service_provider_override(Assignment::C) .build() .unwrap() } @@ -284,7 +284,7 @@ pub fn mock_hex_boost_data_bad( .urbanization(Assignment::C) .footfall(Assignment::C) .landtype(Assignment::C) - .service_provider_selected(Assignment::C) + .service_provider_override(Assignment::C) .build() .unwrap() } @@ -296,13 +296,13 @@ pub fn mock_hex_boost_data( footfall: MockAssignmentMap, urbanized: MockAssignmentMap, landtype: MockAssignmentMap, - service_provider_selected: MockAssignmentMap, + service_provider_override: MockAssignmentMap, ) -> HexBoostData { HexBoostData::builder() .footfall(footfall) .urbanization(urbanized) .landtype(landtype) - .service_provider_selected(service_provider_selected) + .service_provider_override(service_provider_override) .build() .unwrap() } @@ -336,7 +336,7 @@ pub async fn set_unassigned_oracle_boosting_assignments( urbanized: hex.assignments.urbanized.into(), footfall: hex.assignments.footfall.into(), landtype: hex.assignments.landtype.into(), - service_provider_selected: hex.assignments.service_provider_selected.into(), + service_provider_override: hex.assignments.service_provider_override.into(), assignment_multiplier, } })