@@ -9,6 +9,7 @@ final class StatsV4DataHelperTests: XCTestCase {
99
1010 private let currencyFormatter = CurrencyFormatter ( currencySettings: CurrencySettings ( ) ) // Default is US
1111 private let currencyCode = CurrencySettings ( ) . currencyCode
12+ private let locale = Locale ( identifier: " en_US " )
1213
1314 // MARK: Revenue Stats
1415
@@ -200,4 +201,54 @@ final class StatsV4DataHelperTests: XCTestCase {
200201 // Then
201202 XCTAssertEqual ( conversionRate, " 10% " )
202203 }
204+
205+ // MARK: Delta Calculations
206+
207+ func test_createDeltaText_returns_expected_positive_text( ) {
208+ // Given
209+ let previousValue : Double = 100
210+ let currentValue : Double = 150
211+
212+ // When
213+ let deltaText = StatsV4DataHelper . createDeltaText ( from: previousValue, to: currentValue, locale: locale)
214+
215+ // Then
216+ XCTAssertEqual ( deltaText, " +50% " )
217+ }
218+
219+ func test_createDeltaText_returns_expected_negative_text( ) {
220+ // Given
221+ let previousValue : Double = 150
222+ let currentValue : Double = 100
223+
224+ // When
225+ let deltaText = StatsV4DataHelper . createDeltaText ( from: previousValue, to: currentValue, locale: locale)
226+
227+ // Then
228+ XCTAssertEqual ( deltaText, " -33% " )
229+ }
230+
231+ func test_createDeltaText_returns_100_percent_change_when_previous_value_is_zero( ) {
232+ // Given
233+ let previousValue : Double = 0
234+ let currentValue : Double = 10
235+
236+ // When
237+ let deltaText = StatsV4DataHelper . createDeltaText ( from: previousValue, to: currentValue, locale: locale)
238+
239+ // Then
240+ XCTAssertEqual ( deltaText, " +100% " )
241+ }
242+
243+ func test_createDeltaText_returns_negative_100_percent_change_when_current_value_is_zero( ) {
244+ // Given
245+ let previousValue : Double = 10
246+ let currentValue : Double = 0
247+
248+ // When
249+ let deltaText = StatsV4DataHelper . createDeltaText ( from: previousValue, to: currentValue, locale: locale)
250+
251+ // Then
252+ XCTAssertEqual ( deltaText, " -100% " )
253+ }
203254}
0 commit comments