Files
BalanceMono/BalanceAndroid/app/src/test/java/com/example/balanceandroid/FinanceMathTest.kt
T
2026-07-14 16:20:39 +07:00

34 lines
1.5 KiB
Kotlin

package com.example.balanceandroid
import com.example.balanceandroid.data.FinanceMath
import com.example.balanceandroid.data.TransactionEntity
import org.junit.Assert.assertEquals
import org.junit.Test
class FinanceMathTest {
@Test
fun summarySeparatesIncomeExpensesAndAdjustments() {
val items = listOf(
TransactionEntity(amount = 1000.0, date = 100, categoryName = "Зарплата", kindRawValue = "income"),
TransactionEntity(amount = 250.0, date = 200, categoryName = "Продукты", kindRawValue = "expense"),
TransactionEntity(amount = 50.0, date = 300, categoryName = "Корректировка", kindRawValue = "income", isBalanceAdjustment = true),
)
val summary = FinanceMath.summary(items, 0, 1000)
assertEquals(1000.0, summary.income, 0.001)
assertEquals(250.0, summary.expenses, 0.001)
assertEquals(750.0, summary.balance, 0.001)
assertEquals(800.0, FinanceMath.totalBalance(items), 0.001)
}
@Test
fun spendingGroupsCategories() {
val items = listOf(
TransactionEntity(amount = 100.0, date = 100, categoryName = "Дом", categoryColorName = "indigo"),
TransactionEntity(amount = 200.0, date = 200, categoryName = "Дом", categoryColorName = "indigo"),
)
val spending = FinanceMath.spending(items, 0, 1000)
assertEquals(1, spending.size)
assertEquals(300.0, spending.first().amount, 0.001)
}
}