music: complete non-android date tests
Complete the date tests that don't require a context.
This commit is contained in:
parent
78e3739a68
commit
a5e78e614f
4 changed files with 106 additions and 23 deletions
|
@ -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
|
||||||
|
|
|
@ -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)) {
|
||||||
|
|
|
@ -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()))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue