From a3a7fd0ce48a19f68ae3d321156612e3e4176542 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20Mat=C3=ADas=20Gomez?= Date: Tue, 10 Dec 2024 17:01:28 -0300 Subject: [PATCH] Change sdk enabled logic to mimic android and backend (#141) --- .../EmbraceConfigurable/RemoteConfig.swift | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Sources/EmbraceConfigInternal/EmbraceConfigurable/RemoteConfig.swift b/Sources/EmbraceConfigInternal/EmbraceConfigurable/RemoteConfig.swift index ba98244a..be74d59d 100644 --- a/Sources/EmbraceConfigInternal/EmbraceConfigurable/RemoteConfig.swift +++ b/Sources/EmbraceConfigInternal/EmbraceConfigurable/RemoteConfig.swift @@ -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 } }