Skip to content

Commit

Permalink
Change sdk enabled logic to mimic android and backend (#141)
Browse files Browse the repository at this point in the history
  • Loading branch information
pablomatiasgomez authored Dec 10, 2024
1 parent 485fe0b commit a3a7fd0
Showing 1 changed file with 8 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -97,17 +97,21 @@ extension RemoteConfig {
/// Determine the max value for the probability `space` by using the number of `digits` (16 ^ `n`)
/// If the `hexValue` is within the `threshold`
/// ```
/// space = 16^numDigits
/// result = (hexValue / space) * 100.0 < threshold
/// space = 16^numDigits - 1
/// result = (hexValue / space) * 100.0 <= threshold
/// ```
/// - Parameters:
/// - hexValue: The value to test
/// - digits: The number of digits used to calculate the total space. Must match the number of digits used to determine the hexValue
/// - threshold: The percentage threshold to test against. Values between 0.0 and 100.0
static func isEnabled(hexValue: UInt64, digits: UInt, threshold: Float) -> Bool {
let space = powf(16, Float(digits))
if threshold <= 0 || threshold > 100 {
return false
}

let space = powf(16, Float(digits)) - 1
let result = (Float(hexValue) / space) * 100

return result < threshold
return result <= threshold
}
}

0 comments on commit a3a7fd0

Please sign in to comment.