Skip to content

Commit

Permalink
Mer tester
Browse files Browse the repository at this point in the history
  • Loading branch information
MagnusTonnessen committed Feb 13, 2025
1 parent a88d62a commit dd8afba
Show file tree
Hide file tree
Showing 3 changed files with 107 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
package no.nav.familie.ba.sak.kjerne.tidslinjefamiliefelles.komposisjon

import no.nav.familie.ba.sak.kjerne.tidslinjefamiliefelles.util.apr
import no.nav.familie.ba.sak.kjerne.tidslinjefamiliefelles.util.feb
import no.nav.familie.ba.sak.kjerne.tidslinjefamiliefelles.util.jan
import no.nav.familie.ba.sak.kjerne.tidslinjefamiliefelles.util.mar
import no.nav.familie.ba.sak.kjerne.tidslinjefamiliefelles.util.tilCharTidslinje
import no.nav.familie.ba.sak.kjerne.tidslinjefamiliefelles.util.tilStringTidslinje
import no.nav.familie.tidslinje.utvidelser.tilPerioder
import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.Test

class TidslinjeJoinTest {
private val tidslinje1 = mapOf("key" to "abc".tilCharTidslinje(jan(2000)))
private val tidslinje2 = mapOf("key" to "fgh".tilCharTidslinje(feb(2000)))

@Test
fun join() {
val faktiskePerioder =
tidslinje1
.join(tidslinje2) { c1, c2 ->
when {
c1 == null && c2 == null -> null
c1 == null -> c2.toString()
c2 == null -> c1.toString()
else -> c1.toString() + c2.toString()
}
}["key"]!!

val forventedePerioder = listOf("a", "bf", "cg", "h").tilStringTidslinje(jan(2000))

assertThat(faktiskePerioder).isEqualTo(forventedePerioder)
}

@Test
fun joinIkkeNull() {
val faktiskePerioder =
tidslinje1
.joinIkkeNull(tidslinje2) { c1, c2 ->
c1.toString() + c2.toString()
}["key"]!!
.tilPerioder()

assertThat(faktiskePerioder).hasSize(4)

assertThat(faktiskePerioder[0].verdi).isNull()
assertThat(faktiskePerioder[0].fom).isEqualTo(1.jan(2000))
assertThat(faktiskePerioder[0].tom).isEqualTo(31.jan(2000))

assertThat(faktiskePerioder[1].verdi).isEqualTo("bf")
assertThat(faktiskePerioder[1].fom).isEqualTo(1.feb(2000))
assertThat(faktiskePerioder[1].tom).isEqualTo(29.feb(2000))

assertThat(faktiskePerioder[2].verdi).isEqualTo("cg")
assertThat(faktiskePerioder[2].fom).isEqualTo(1.mar(2000))
assertThat(faktiskePerioder[2].tom).isEqualTo(31.mar(2000))

assertThat(faktiskePerioder[3].verdi).isNull()
assertThat(faktiskePerioder[3].fom).isEqualTo(1.apr(2000))
assertThat(faktiskePerioder[3].tom).isEqualTo(30.apr(2000))
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package no.nav.familie.ba.sak.kjerne.tidslinjefamiliefelles.matematikk

import no.nav.familie.ba.sak.kjerne.tidslinjefamiliefelles.util.jan
import no.nav.familie.ba.sak.kjerne.tidslinjefamiliefelles.util.tilCharTidslinje
import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.Test

class SammenliknbarTidslinjeTest {
@Test
fun minsteAvHver() {
val tidslinje1 = mapOf(1 to "acegi".tilCharTidslinje(jan(2000)))
val tidslinje2 = mapOf(1 to "bbddi".tilCharTidslinje(jan(2000)))

val minsteAvHver = minsteAvHver(tidslinje1, tidslinje2)[1]!!
val forventetTidslinje = "abddi".tilCharTidslinje(jan(2000))

assertThat(minsteAvHver).isEqualTo(forventetTidslinje)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,30 @@ class ZipTidslinjeTest {
listOf(Pair(null, 'a'), Pair('a', 'b'), Pair('b', 'c'), Pair('c', 'd'), Pair('d', 'e'), Pair('e', 'f')),
)
}

@Test
fun testZipMedNesteTidslinjePaddingEtter() {
val aTilF = ('a'..'f').toList().joinToString("")
val bokstavTidslinje = aTilF.tilCharTidslinje(YearMonth.now())
val bokstavParTidslinje = bokstavTidslinje.zipMedNeste(ZipPadding.ETTER)

assertThat(aTilF).isEqualTo("abcdef")

assertThat(bokstavParTidslinje.tilPerioder().map { it.verdi }).isEqualTo(
listOf(Pair('a', 'b'), Pair('b', 'c'), Pair('c', 'd'), Pair('d', 'e'), Pair('e', 'f'), Pair('f', null)),
)
}

@Test
fun testZipMedNesteTidslinjeIngenPadding() {
val aTilF = ('a'..'f').toList().joinToString("")
val bokstavTidslinje = aTilF.tilCharTidslinje(YearMonth.now())
val bokstavParTidslinje = bokstavTidslinje.zipMedNeste(ZipPadding.INGEN_PADDING)

assertThat(aTilF).isEqualTo("abcdef")

assertThat(bokstavParTidslinje.tilPerioder().map { it.verdi }).isEqualTo(
listOf(Pair('a', 'b'), Pair('b', 'c'), Pair('c', 'd'), Pair('d', 'e'), Pair('e', 'f')),
)
}
}

0 comments on commit dd8afba

Please sign in to comment.