Open-source multiplayer game server compatible with the RuneScape client https://www.openrs2.org/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
openrs2/util/src/test/kotlin/org/openrs2/util/Base37Test.kt

120 lines
3.5 KiB

package org.openrs2.util
import kotlin.test.Test
import kotlin.test.assertEquals
import kotlin.test.assertFailsWith
class Base37Test {
@Test
fun testEncodeBounds() {
assertEquals(0, Base37.encode(""))
assertEquals(1, Base37.encode("a"))
assertEquals(1, Base37.encode("A"))
assertEquals(6582952005840035279, Base37.encode("999999999998"))
assertEquals(6582952005840035280, Base37.encode("999999999999"))
assertFailsWith<IllegalArgumentException> {
Base37.encode("aaaaaaaaaaaaa")
}
}
@Test
fun testEncodeBoundsWhitespace() {
assertEquals(6582952005840035280, Base37.encode("999999999999 "))
assertEquals(6582952005840035280, Base37.encode(" 999999999999"))
assertEquals(6582952005840035280, Base37.encode(" 999999999999 "))
assertFailsWith<IllegalArgumentException> {
Base37.encode("aaaaaaaaaaaaa ")
}
assertFailsWith<IllegalArgumentException> {
Base37.encode(" aaaaaaaaaaaaa")
}
assertFailsWith<IllegalArgumentException> {
Base37.encode(" aaaaaaaaaaaaa ")
}
}
@Test
fun testDecodeLowerCaseBounds() {
assertFailsWith<IllegalArgumentException> {
Base37.decodeLowerCase(-1)
}
assertEquals("", Base37.decodeLowerCase(0))
assertEquals("a", Base37.decodeLowerCase(1))
assertEquals("999999999998", Base37.decodeLowerCase(6582952005840035279))
assertEquals("999999999999", Base37.decodeLowerCase(6582952005840035280))
assertFailsWith<IllegalArgumentException> {
Base37.decodeLowerCase(6582952005840035281)
}
}
@Test
fun testDecodeTitleCaseBounds() {
assertFailsWith<IllegalArgumentException> {
Base37.decodeTitleCase(-1)
}
assertEquals("", Base37.decodeTitleCase(0))
assertEquals("A", Base37.decodeTitleCase(1))
assertEquals("999999999998", Base37.decodeTitleCase(6582952005840035279))
assertEquals("999999999999", Base37.decodeTitleCase(6582952005840035280))
assertFailsWith<IllegalArgumentException> {
Base37.decodeTitleCase(6582952005840035281)
}
}
@Test
fun testEncodeInvalidChar() {
assertFailsWith<IllegalArgumentException> {
Base37.encode("!")
}
}
@Test
fun testEncodeWhitespace() {
assertEquals(1465402762952, Base37.encode("Open Rs2"))
assertEquals(1465402762952, Base37.encode("open_rs2"))
assertEquals(1465402762952, Base37.encode(" Open Rs2 "))
assertEquals(1465402762952, Base37.encode("_Open Rs2_"))
}
@Test
fun testDecodeLowerCaseWhitespace() {
assertEquals("open_rs2", Base37.decodeLowerCase(1465402762952))
}
@Test
fun testDecodeTitleCaseWhitespace() {
assertEquals("Open Rs2", Base37.decodeTitleCase(1465402762952))
}
@Test
fun testDecodeLowerCaseTrailingWhitespace() {
assertFailsWith<IllegalArgumentException> {
Base37.decodeLowerCase(54219902229224)
}
}
@Test
fun testDecodeTitleCaseTrailingWhitespace() {
assertFailsWith<IllegalArgumentException> {
Base37.decodeTitleCase(54219902229224)
}
}
@Test
fun testToLowerCase() {
assertEquals("open_rs2", Base37.toLowerCase(" OpEn rS2_"))
}
@Test
fun testToTitleCase() {
assertEquals("Open Rs2", Base37.toTitleCase(" OpEn rS2_"))
}
}