music: complete non-android date tests

Complete the date tests that don't require a context.
This commit is contained in:
Alexander Capehart 2023-01-05 12:52:09 -07:00
parent 78e3739a68
commit a5e78e614f
No known key found for this signature in database
GPG key ID: 37DBE3621FE9AD47
4 changed files with 106 additions and 23 deletions

View file

@ -13,6 +13,9 @@ file manager
#### What's Changed #### What's Changed
- Implemented new queue system - Implemented new queue system
#### Dev/Meta
- Added unit testing framework
## 3.0.1 ## 3.0.1
#### What's New #### What's New

View file

@ -74,7 +74,7 @@ class Date private constructor(private val tokens: List<Int>) : Comparable<Date>
override fun hashCode() = tokens.hashCode() override fun hashCode() = tokens.hashCode()
override fun equals(other: Any?) = other is Date && other.compareTo(this) == 0 override fun equals(other: Any?) = other is Date && compareTo(other) == 0
override fun compareTo(other: Date): Int { override fun compareTo(other: Date): Int {
for (i in 0 until max(tokens.size, other.tokens.size)) { for (i in 0 until max(tokens.size, other.tokens.size)) {

View file

@ -18,63 +18,137 @@
package org.oxycblt.auxio.music package org.oxycblt.auxio.music
import org.junit.Assert.assertEquals import org.junit.Assert.assertEquals
import org.junit.Assert.assertTrue
import org.junit.Test import org.junit.Test
class DateTest { class DateTest {
// TODO: Incomplete @Test
fun date_equals() {
assertTrue(
requireNotNull(Date.from("2016-08-16T00:01:02")) ==
requireNotNull(Date.from("2016-08-16T00:01:02")))
}
@Test
fun date_precisionEquals() {
assertTrue(
requireNotNull(Date.from("2016-08-16T00:01:02")) !=
requireNotNull(Date.from("2016-08-16")))
}
@Test
fun date_compareDates() {
val a = requireNotNull(Date.from("2016-08-16T00:01:02"))
val b = requireNotNull(Date.from("2016-09-16T00:01:02"))
assertEquals(-1, a.compareTo(b))
}
@Test
fun date_compareTimes() {
val a = requireNotNull(Date.from("2016-08-16T00:02:02"))
val b = requireNotNull(Date.from("2016-08-16T00:01:02"))
assertEquals(1, a.compareTo(b))
}
@Test
fun date_comparePrecision() {
val a = requireNotNull(Date.from("2016-08-16T00:01:02"))
val b = requireNotNull(Date.from("2016-08-16"))
assertEquals(
1,
a.compareTo(b),
)
}
@Test @Test
fun date_fromYear() { fun date_fromYear() {
assertEquals(Date.from(2016).toString(), "2016") assertEquals("2016", Date.from(2016).toString())
} }
@Test @Test
fun date_fromDate() { fun date_fromDate() {
assertEquals(Date.from(2016, 8, 16).toString(), "2016-08-16") assertEquals("2016-08-16", Date.from(2016, 8, 16).toString())
} }
@Test @Test
fun date_fromDatetime() { fun date_fromDatetime() {
assertEquals(Date.from(2016, 8, 16, 0, 1).toString(), "2016-08-16T00:01Z") assertEquals("2016-08-16T00:01Z", Date.from(2016, 8, 16, 0, 1).toString())
} }
@Test @Test
fun date_fromFormalTimestamp() { fun date_fromFormalTimestamp() {
assertEquals(Date.from("2016-08-16T00:01:02").toString(), "2016-08-16T00:01:02Z") assertEquals("2016-08-16T00:01:02Z", Date.from("2016-08-16T00:01:02").toString())
} }
@Test @Test
fun date_fromSpacedTimestamp() { fun date_fromSpacedTimestamp() {
assertEquals(Date.from("2016-08-16 00:01:02").toString(), "2016-08-16T00:01:02Z") assertEquals("2016-08-16T00:01:02Z", Date.from("2016-08-16 00:01:02").toString())
} }
@Test @Test
fun date_fromDatestamp() { fun date_fromDatestamp() {
assertEquals(Date.from("2016-08-16").toString(), "2016-08-16") assertEquals(
"2016-08-16",
Date.from("2016-08-16").toString(),
)
} }
@Test @Test
fun date_fromWeirdDateTimestamp() { fun date_fromWeirdDateTimestamp() {
assertEquals(Date.from("2016-08-16T00:01").toString(), "2016-08-16T00:01Z") assertEquals("2016-08-16T00:01Z", Date.from("2016-08-16T00:01").toString())
} }
@Test @Test
fun date_fromWeirdDatestamp() { fun date_fromWeirdDatestamp() {
assertEquals(Date.from("2016-08").toString(), "2016-08") assertEquals("2016-08", Date.from("2016-08").toString())
} }
@Test @Test
fun date_fromYearStamp() { fun date_fromYearStamp() {
assertEquals(Date.from("2016").toString(), "2016") assertEquals("2016", Date.from("2016").toString())
} }
@Test @Test
fun date_fromWackTimestamp() { fun date_fromWackTimestamp() {
assertEquals(Date.from("2016-11-32 25:43:01").toString(), "2016-11") assertEquals("2016-11", Date.from("2016-11-32 25:43:01").toString())
}
@Test
fun date_fromBustedTimestamp() {
assertEquals(null, Date.from("2016-08-16:00:01:02"))
assertEquals(null, Date.from(""))
} }
@Test @Test
fun date_fromWackYear() { fun date_fromWackYear() {
assertEquals(Date.from(0), null) assertEquals(Date.from(0), null)
} }
@Test
fun dateRange_fromDates() {
val range =
requireNotNull(
Date.Range.from(
listOf(
requireNotNull(Date.from("2016-08-16T00:01:02")),
requireNotNull(Date.from("2016-07-16")),
requireNotNull(Date.from("2014-03-12T00")),
requireNotNull(Date.from("2022-12-22T22:22:22")))))
assertEquals("2014-03-12T00Z", range.min.toString())
assertEquals("2022-12-22T22:22:22Z", range.max.toString())
}
@Test
fun dateRange_fromSingle() {
val range =
requireNotNull(
Date.Range.from(listOf(requireNotNull(Date.from("2016-08-16T00:01:02")))))
assertEquals("2016-08-16T00:01:02Z", range.min.toString())
assertEquals("2016-08-16T00:01:02Z", range.max.toString())
}
@Test
fun dateRange_empty() {
assertEquals(null, Date.Range.from(listOf()))
}
} }

View file

@ -21,63 +21,69 @@ import org.junit.Assert.assertEquals
import org.junit.Test import org.junit.Test
class ParsingUtilTest { class ParsingUtilTest {
// TODO: Incomplete
@Test @Test
fun splitEscaped_correct() { fun splitEscaped_correct() {
assertEquals("a,b,c".splitEscaped { it == ',' }, listOf("a", "b", "c")) assertEquals(listOf("a", "b", "c"), "a,b,c".splitEscaped { it == ',' })
} }
@Test @Test
fun splitEscaped_escaped() { fun splitEscaped_escaped() {
assertEquals("a\\,b,c".splitEscaped { it == ',' }, listOf("a,b", "c")) assertEquals(listOf("a,b", "c"), "a\\,b,c".splitEscaped { it == ',' })
} }
@Test @Test
fun splitEscaped_whitespace() { fun splitEscaped_whitespace() {
assertEquals("a , b, c , ".splitEscaped { it == ',' }, listOf("a ", " b", " c ", " ")) assertEquals(listOf("a ", " b", " c ", " "), "a , b, c , ".splitEscaped { it == ',' })
} }
@Test @Test
fun splitEscaped_escapedWhitespace() { fun splitEscaped_escapedWhitespace() {
assertEquals("a \\, b, c , ".splitEscaped { it == ',' }, listOf("a , b", " c ", " ")) assertEquals(listOf("a , b", " c ", " "), ("a \\, b, c , ".splitEscaped { it == ',' }))
} }
@Test @Test
fun correctWhitespace_stringCorrect() { fun correctWhitespace_stringCorrect() {
assertEquals( assertEquals(
" asymptotic self-improvement ".correctWhitespace(), "asymptotic self-improvement") "asymptotic self-improvement",
" asymptotic self-improvement ".correctWhitespace(),
)
} }
@Test @Test
fun correctWhitespace_stringOopsAllWhitespace() { fun correctWhitespace_stringOopsAllWhitespace() {
assertEquals(" ".correctWhitespace(), null) assertEquals(null, "".correctWhitespace())
assertEquals(null, " ".correctWhitespace())
} }
@Test @Test
fun correctWhitespace_listCorrect() { fun correctWhitespace_listCorrect() {
assertEquals( assertEquals(
listOf("asymptotic self-improvement", "daemons never stop", "tcp phagocyte"),
listOf(" asymptotic self-improvement ", " daemons never stop", "tcp phagocyte") listOf(" asymptotic self-improvement ", " daemons never stop", "tcp phagocyte")
.correctWhitespace(), .correctWhitespace(),
listOf("asymptotic self-improvement", "daemons never stop", "tcp phagocyte")) )
} }
@Test @Test
fun correctWhitespace_listOopsAllWhitespacE() { fun correctWhitespace_listOopsAllWhitespacE() {
assertEquals( assertEquals(
listOf(" ", "", " tcp phagocyte").correctWhitespace(), listOf("tcp phagocyte")) listOf("tcp phagocyte"), listOf(" ", "", " tcp phagocyte").correctWhitespace())
} }
@Test @Test
fun parseId3v2Position_correct() { fun parseId3v2Position_correct() {
assertEquals("16/32".parseId3v2Position(), 16) assertEquals(16, "16/32".parseId3v2Position())
} }
@Test @Test
fun parseId3v2Position_noTotal() { fun parseId3v2Position_noTotal() {
assertEquals("16".parseId3v2Position(), 16) assertEquals(16, "16".parseId3v2Position())
} }
@Test @Test
fun parseId3v2Position_wack() { fun parseId3v2Position_wack() {
assertEquals("16/".parseId3v2Position(), 16) assertEquals(16, "16/".parseId3v2Position())
} }
} }