34 lines
1.5 KiB
Kotlin
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)
|
|
}
|
|
}
|