Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mobile Coverage points calculator #824

Merged
merged 115 commits into from
Jun 12, 2024

Commits on Jun 6, 2024

  1. Configuration menu
    Copy the full SHA
    c12cf58 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    a752017 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    a38119e View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    c628887 View commit details
    Browse the repository at this point in the history
  5. boosted hexes

    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    92ac409 View commit details
    Browse the repository at this point in the history
  6. location trust score

    moved to using decimals now that summing lists is involved, and we need to retain accuracy
    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    7c0956e View commit details
    Browse the repository at this point in the history
  7. rank multiplier

    still need to decide how the multipliers are going to be indexed. 0-indexed is easy, but it seems what to talk about a radio being "0th ranked" in a hex.
    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    172d3a8 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    38e25d2 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    86af16f View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    bd868f3 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    ce66053 View commit details
    Browse the repository at this point in the history
  12. Speedtest mutliplier

    the speedtest multiplier is allowed to be zero. It can completely negate a radios rewards.
    speedtest 2
    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    ac55763 View commit details
    Browse the repository at this point in the history
  13. reformat docs

    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    c63cf03 View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    901dae7 View commit details
    Browse the repository at this point in the history
  15. LocalRadio -> RewardableRadio

    it seems a more accurate name for where we are currently, I think
    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    f9fe094 View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    1a02c2f View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    526a9d6 View commit details
    Browse the repository at this point in the history
  18. Make Rank 1-indexed

    For the way we talk about Ranking of radios, it doesn't make much sense for a radio to be ranked 0th for a hex.
    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    febe516 View commit details
    Browse the repository at this point in the history
  19. assignments typo

    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    5a69e11 View commit details
    Browse the repository at this point in the history
  20. break up filter and map

    Removing hexes that do not meet the rank requirements is easier to think about in its own step
    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    9ed0800 View commit details
    Browse the repository at this point in the history
  21. Use more expected name for hex coverage points

    the HIP says estimated coverage points, but no one thinks of them that way, because there is nothing about them that is an esimate, they are very concrete values.
    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    5f90176 View commit details
    Browse the repository at this point in the history
  22. remove unused code

    Now that we have some integration tests, we can trust what code is being used
    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    2fe76e8 View commit details
    Browse the repository at this point in the history
  23. Make calculating coverage points a top level function

    I want this crate to make the algorithm one of the most important things. Hiding it inside a structs impl block seems not a great of doing that, I think. I also don't think the rewardable radio impl block should be moved to the top to make the algorithm more front and center, in my mind it would only make RewardableRadio look more important.
    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    5f3f14a View commit details
    Browse the repository at this point in the history
  24. flesh out speedtests

    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    16dee05 View commit details
    Browse the repository at this point in the history
  25. Configuration menu
    Copy the full SHA
    c5018dd View commit details
    Browse the repository at this point in the history
  26. Location trust scores

    trust scores and covered hexes are linked in many ways. I'm opting to precompute multiple values then have quick access to them, rather than waiting until they're needed and computing them for every hex. Or carrying around a spot for computed data that get's filled on the first use.
    
    When the rest of the types are fleshed out, some benchmarks will be done to determine if this is a problem.
    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    18d1ca3 View commit details
    Browse the repository at this point in the history
  27. break out location

    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    92f5c69 View commit details
    Browse the repository at this point in the history
  28. to_mbps -> as_mbps

    Clippy wants the method to take ownership to follow the `to_*()` convention.
    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    347551f View commit details
    Browse the repository at this point in the history
  29. Match HIP explicitly for latency values

    The original implementation allowed the upper limit as inclusive, and it was called out in PR as not matching the HIP.
    
    #737
    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    d516120 View commit details
    Browse the repository at this point in the history
  30. Configuration menu
    Copy the full SHA
    6eed581 View commit details
    Browse the repository at this point in the history
  31. Change verified radio threshold to enum

    Provides a named boolean to the status of meeting subscriber thresholds. Also provides a nice place to add new states in the case more HIPs are passed regarding subscribers thresholds.
    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    c4d842a View commit details
    Browse the repository at this point in the history
  32. Configuration menu
    Copy the full SHA
    073a0ee View commit details
    Browse the repository at this point in the history
  33. Configuration menu
    Copy the full SHA
    df0b365 View commit details
    Browse the repository at this point in the history
  34. Add a user definable key for radios

    This may be hardcoded to a type in the future, but until we know that type, it's easy to make it generic and only enforce the radio returns the same type the coverage map is expecting
    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    84b10f3 View commit details
    Browse the repository at this point in the history
  35. Configuration menu
    Copy the full SHA
    af08ee9 View commit details
    Browse the repository at this point in the history
  36. helpers for mobile rewards report

    I don't know if i like all the helpers in here. but I'm not sure where to put them yet.
    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    913005d View commit details
    Browse the repository at this point in the history
  37. Configuration menu
    Copy the full SHA
    29b1dc6 View commit details
    Browse the repository at this point in the history
  38. coverage map trait takes key directly

    we're constructing a temporary rewardable radio to implement rewardable radio. If we make one directly, the coverage map doesn't have to care about the entire radio, just the key type.
    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    34fd895 View commit details
    Browse the repository at this point in the history
  39. SubscriberThreshold -> RadioThreshold

    Thresholds have already moved away from being solely about subscribers. And this makes clearer the fact that a radio being considered "valid" can have many factors, not only subscribers.
    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    b3f7924 View commit details
    Browse the repository at this point in the history
  40. move boosted hexes iter to the mobile-verifier

    The mobile-verifier needs to be able to report on only the boosted hexes. The calculator is not concerned with that, but it can provide the necessary hooks for the mobile-verifier to create the boosted hexes report.
    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    3fdaf60 View commit details
    Browse the repository at this point in the history
  41. Configuration menu
    Copy the full SHA
    69568bb View commit details
    Browse the repository at this point in the history
  42. do not handle cleaning values for reports

    that belongs in mobile-verifier
    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    7547025 View commit details
    Browse the repository at this point in the history
  43. clippy

    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    6f6d06a View commit details
    Browse the repository at this point in the history
  44. include hex_assignments crate

    Thought I got this with a previous commit, apparently not.
    Also add some spacing for readability
    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    0f01422 View commit details
    Browse the repository at this point in the history
  45. Configuration menu
    Copy the full SHA
    3195958 View commit details
    Browse the repository at this point in the history
  46. Configuration menu
    Copy the full SHA
    3f721e1 View commit details
    Browse the repository at this point in the history
  47. Configuration menu
    Copy the full SHA
    38584b6 View commit details
    Browse the repository at this point in the history
  48. remove coveragemap trait

    the  coverage map is going to be used before entering this crate, so we don't need to put a restriction around it.
    
    The restriction will be that we only accept types provided from that crate.
    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    b9f985e View commit details
    Browse the repository at this point in the history
  49. use RankedCoverage from coverage map

    requires pulling in helium-crypto as a dev dependency for testing
    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    a62b276 View commit details
    Browse the repository at this point in the history
  50. do not panic for incorrect signal levels

    return a calculator error if a rewardable radio cannot be constructed.
    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    36af33e View commit details
    Browse the repository at this point in the history
  51. Configuration menu
    Copy the full SHA
    821be75 View commit details
    Browse the repository at this point in the history
  52. Cleanup after overview

    Despire data given as input, only output data used for calculation.
    
    Enforce the rules of speedtests, min of 2, max of 6, ordered newest to oldest.
    BoostedHexes contain the boosted value they used.
    Location Trust Scores contain the trust score based on boosted hexes.
    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    dd613bc View commit details
    Browse the repository at this point in the history
  53. Restrict construction of RewardableRadio

    Make the fields private so users have to go through the constructor to get a radio, and cannot change values of fields after the fact, as it will not trigger anything to be recalculated.
    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    0b6df3d View commit details
    Browse the repository at this point in the history
  54. Configuration menu
    Copy the full SHA
    a6ee102 View commit details
    Browse the repository at this point in the history
  55. move multiplier calculation into location crate

    needs to know about radio type
    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    7821a86 View commit details
    Browse the repository at this point in the history
  56. bring in speedtest and location changes

    use contstructors when we can, that's when calculations are done for multipliers
    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    efa1c37 View commit details
    Browse the repository at this point in the history
  57. Configuration menu
    Copy the full SHA
    d113dd4 View commit details
    Browse the repository at this point in the history
  58. Configuration menu
    Copy the full SHA
    47999df View commit details
    Browse the repository at this point in the history
  59. Configuration menu
    Copy the full SHA
    28a0aa0 View commit details
    Browse the repository at this point in the history
  60. Configuration menu
    Copy the full SHA
    51150b2 View commit details
    Browse the repository at this point in the history
  61. represent boosted hex eligiblity with an enum

    There is more than 1 case that can preclude a radio from eligibility,
    let's communicate that in a better way that a boolean.
    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    fb1da40 View commit details
    Browse the repository at this point in the history
  62. Configuration menu
    Copy the full SHA
    ac3a77f View commit details
    Browse the repository at this point in the history
  63. Configuration menu
    Copy the full SHA
    19956c0 View commit details
    Browse the repository at this point in the history
  64. Configuration menu
    Copy the full SHA
    847a1fa View commit details
    Browse the repository at this point in the history
  65. Configuration menu
    Copy the full SHA
    4541393 View commit details
    Browse the repository at this point in the history
  66. assert against expected points in integration

    allows us to remove radio_type getter from RewardableRadio
    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    8a8b3ca View commit details
    Browse the repository at this point in the history
  67. remove type alias

    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    36d93b5 View commit details
    Browse the repository at this point in the history
  68. move helpers behind tests

    add comments to assertions
    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    1aadb87 View commit details
    Browse the repository at this point in the history
  69. Use inner line comment to describe crate

    inner line comments "//!" describe what is above.
    outer line comments "///" describe what is below.
    
    Thank you Matty.
    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    ff38db3 View commit details
    Browse the repository at this point in the history
  70. Clean up constructors

    We can not need to worry about constructor naming conventions by moving
    more decision making into the constructors themselves.
    
    `RewardableRadio::new` now only brings to the surface the fact that
    location trust scores need to know about coverage, and covered hexes
    need to know about location trust multiplier. But nothing more internally.
    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    cb6b3ef View commit details
    Browse the repository at this point in the history
  71. Configuration menu
    Copy the full SHA
    a9e4846 View commit details
    Browse the repository at this point in the history
  72. Configuration menu
    Copy the full SHA
    5d7bd20 View commit details
    Browse the repository at this point in the history
  73. Configuration menu
    Copy the full SHA
    03dfe72 View commit details
    Browse the repository at this point in the history
  74. Configuration menu
    Copy the full SHA
    1730802 View commit details
    Browse the repository at this point in the history
  75. Configuration menu
    Copy the full SHA
    d96ddab View commit details
    Browse the repository at this point in the history
  76. Configuration menu
    Copy the full SHA
    f94def7 View commit details
    Browse the repository at this point in the history
  77. question was answered, negative

    "No, if the radio covers a boosted hex, then the location trust score is
    calculated using the more restrictive distance_to_asserted rule." - bbalser
    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    4601b74 View commit details
    Browse the repository at this point in the history
  78. Configuration menu
    Copy the full SHA
    33e7573 View commit details
    Browse the repository at this point in the history
  79. include rstest

    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    6a43d7b View commit details
    Browse the repository at this point in the history
  80. Configuration menu
    Copy the full SHA
    7004083 View commit details
    Browse the repository at this point in the history
  81. make unread fields public

    You could make the argument to remove these fields, they were used in
    the construction of a radio, and play a critical role in determining
    points. I chose to keep them around because if anything happens where
    you have a radio and want information about values within, these fields
    will be crucial in helping you figure that out.
    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    963e9c3 View commit details
    Browse the repository at this point in the history
  82. remove radio information from returned coverage points

    rather than consuming a radio you were forced to construct, and
    returning much of the same information in a different shape. You get to
    keep the radio you've made, and if you want to know about both, you can
    hold on to both.
    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    4780bf3 View commit details
    Browse the repository at this point in the history
  83. try not to compare directly against values

    This tests cares about the relative value of the speedtest multiplier
    being applied. As long as that relationship holds, this test is fine. It
    doesn't want to worry about arbitrary points changing.
    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    bac1804 View commit details
    Browse the repository at this point in the history
  84. provide a parameterized test for each type of radio

    This allows us to be more specific about how much a hex contributes to
    each type of radio without needing to know how individual hex values stack.
    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    d846d7d View commit details
    Browse the repository at this point in the history
  85. Configuration menu
    Copy the full SHA
    3336070 View commit details
    Browse the repository at this point in the history
  86. remove Millis as a newtype

    There's nothing that can be further enforced by having a newtype.
    Making the field as `_millis` communicates the same ammount of
    information as the newtype.
    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    c4e43eb View commit details
    Browse the repository at this point in the history
  87. SpeedtestTier is Copy, as well as BytePs

    We don't need to enforce passing references for Copy types, let people
    use them directly and the compiler can figure it out.
    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    7be97e9 View commit details
    Browse the repository at this point in the history
  88. Configuration menu
    Copy the full SHA
    55c530c View commit details
    Browse the repository at this point in the history
  89. switchup location testing angle

    Rather than testing statements like "the multiplier should be an average
    of the scores". This module benefits more from describing the different
    scenarios, and showing boosted and unboosted versions in contrast with
    each other, I think.
    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    4684bb0 View commit details
    Browse the repository at this point in the history
  90. Configuration menu
    Copy the full SHA
    fca8c2f View commit details
    Browse the repository at this point in the history
  91. remove Meters as a newtype

    There's nothing that can be further enforced by having a newtype.
    Making the field as `meters_from_` communicates the same ammount of
    information as the newtype.
    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    aada11f View commit details
    Browse the repository at this point in the history
  92. name base_coverage_points consistently

    having bare coverage_point names laying around can be quickly confusing.
    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    479e932 View commit details
    Browse the repository at this point in the history
  93. parameterize ranked tests

    Speaking of a single rank at a time simplifies the test by not needing
    to know how values stack on top of each other.
    
    I kept indoor/outdoor as separate tests as to not overwhelm the reader
    with a parameterized test that has too many variables
    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    6fa795d View commit details
    Browse the repository at this point in the history
  94. use correct radio type for test

    copy/paste error from rebasing on top of coverage-map updates, yay!
    But now we know the tests break.
    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    3d3cd08 View commit details
    Browse the repository at this point in the history
  95. clippy does not like overlapping ranges

    I agree with the concept, so I've added the lower bounds.
    Personally, I still think these match statements are easier to read than
    the equivalent `else if` expression. So they're staying as range
    comparisons.
    michaeldjeffrey committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    389134b View commit details
    Browse the repository at this point in the history

Commits on Jun 7, 2024

  1. exchange struct constructor for function

    I like the idea of the API to this crate being 2 functions. In my head,
    that makes it clearer that any functions hanging off of exposed structs
    can be used for information gathering, but are ancillary to the main use
    of this crate.
    michaeldjeffrey committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    df93e3d View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    81e7e25 View commit details
    Browse the repository at this point in the history
  3. move radio_threshold earlier in argument list

    This puts the information about the radio closer to each other, the
    grouping feels nicer, I think
    michaeldjeffrey committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    ff65ac8 View commit details
    Browse the repository at this point in the history
  4. include all fields in coverage points

    this is stepping towards having a single struct
    michaeldjeffrey committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    83b0a21 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    b35f2ae View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    6e8fd68 View commit details
    Browse the repository at this point in the history
  7. remove wrapping struct for location trust scores

    This means we don't need to unwrap anything, and the API is more
    strictly dealing with data alone.
    
    The location funtions are only public to the crate to prevent someone
    from attempting to put together they're own coverage points calculator.
    
    They must go through the calculate_coverage_points function.
    michaeldjeffrey committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    3c696c3 View commit details
    Browse the repository at this point in the history
  8. remove wrapping CoveredHexes struct

    Same as location, we want to deal more directly with data, while keeping
    the only way to use the crate be through the top level
    calculate_coverage_points function.
    michaeldjeffrey committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    5991da7 View commit details
    Browse the repository at this point in the history
  9. remove wrapping struct from speedtests

    dealing more directly with data.
    forcing use through the top level api.
    michaeldjeffrey committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    bfa23d2 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    3da915f View commit details
    Browse the repository at this point in the history
  11. move calcuating coverage points into constructor

    I thought `coverage_point_calculator::calculate_coverage_points()`
    didn't read very well.
    
    And since we now have a single struct to care about (outside of
    providing arguments), it seemed to me
    `coverage_point_calculator::CoveragePoints::new()` read rather nicely.
    michaeldjeffrey committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    958b2d1 View commit details
    Browse the repository at this point in the history
  12. Removing derive Default for Speedtest

    I don't think a zeroed out Speedtest is a sensible default
    michaeldjeffrey committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    dc02abc View commit details
    Browse the repository at this point in the history

Commits on Jun 10, 2024

  1. Fix incorrect speedtests conversion

    I had typed the wrong value when bringing over megabytes per second conversion. We found some values in a real database during testing that should have gotten a different speedtest tier.
    michaeldjeffrey committed Jun 10, 2024
    Configuration menu
    Copy the full SHA
    75e3d4b View commit details
    Browse the repository at this point in the history

Commits on Jun 11, 2024

  1. Take responsibility of rounding shares and total coverage points

    For consistency, the calculator is now truncating values that would have been truncated be the user of the calculator, so we avoid a situation where 2 users of the calculator are using different rounding strategies. 
    
    The fields that make up the truncated values are provided untouched.
    
    Truncating fully to a u64 causes calculations to be off by quite a margin.
    michaeldjeffrey committed Jun 11, 2024
    Configuration menu
    Copy the full SHA
    1abeb84 View commit details
    Browse the repository at this point in the history
  2. Remove rounding

    To keep consistent with the reward calculations this crate is replacing, any rounding of values needs to be avoided before rewards are calculated. This means users of the values will need to handle routing going into protobufs themselves.
    michaeldjeffrey committed Jun 11, 2024
    Configuration menu
    Copy the full SHA
    f252947 View commit details
    Browse the repository at this point in the history
  3. hip-103: oracles and provider boosting crossover

    When a hex is boosted by a provider, it's oracle (assignment) boosting multiplier is automatically pushed to 1x.
    hip-103: top level oracle/provider boosting test
    michaeldjeffrey committed Jun 11, 2024
    Configuration menu
    Copy the full SHA
    ec39a07 View commit details
    Browse the repository at this point in the history
  4. Bring over scenario tests

    Come up with names for different scenarios, they are a combination of factors that effect readio scores.
    michaeldjeffrey committed Jun 11, 2024
    Configuration menu
    Copy the full SHA
    cfc884a View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    419b273 View commit details
    Browse the repository at this point in the history

Commits on Jun 12, 2024

  1. hip-103: provider boost increases oracle boost always

    If a hex is boosted by a provider, that hex is deemed valuable from an oracle context, and should always be 1x.
    
    Hexes were being "cleaned" of their boost values _before_ trying to determine the oracle multplier, which coupled a hexes boost effect to the assignment multiplier to wether or not the radio was eligible for boosting rewards. 
    
    That was incorrect. Hexes are now "cleaned" at the same time as determining the multipliers.
    michaeldjeffrey committed Jun 12, 2024
    Configuration menu
    Copy the full SHA
    87b6b3a View commit details
    Browse the repository at this point in the history
  2. move collections to the end

    I could see an argument for the collection being moved to the front as well. But I think either is a better case than in the middle.
    
    I chose the end here because I think it reads easier when testing to have the function, then small decision making structs, _then_ the collection that could be constructed in place.
    michaeldjeffrey committed Jun 12, 2024
    Configuration menu
    Copy the full SHA
    0399213 View commit details
    Browse the repository at this point in the history