-
Notifications
You must be signed in to change notification settings - Fork 88
/
Copy pathCompressionTest.kt
35 lines (34 loc) · 1.09 KB
/
CompressionTest.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import compression.runLengthEncoding
import org.jetbrains.spek.api.Spek
import org.junit.Assert.*
/**
* Spek BDD test for Run Length Encoding
*/
class RunLengthEncodingTest: Spek({
given("Empty String"){
it("Returns Empty String"){
assertEquals("",runLengthEncoding(""))
}
}
given("Single character"){
it("Returns 1A"){
assertEquals("1B",runLengthEncoding("B"))
}
}
given("All same Character"){
it("It returns 5A"){
assertEquals("5A",runLengthEncoding("AAAAA"))
}
}
given("A mix of characters then "){
it("It returns expected encoding"){
assertEquals("5A3B4C2A",runLengthEncoding("AAAAABBBCCCCAA"))
}
}
given("A longer string then "){
it("It returns expected encoding without overflow"){
assertEquals("5A3B4C7A3B4C7A3B4C7A3B4C7A3B4C7A3B4C7A3B4C7A3B4C7A3B4C2A",
runLengthEncoding("AAAAABBBCCCCAAAAAAABBBCCCCAAAAAAABBBCCCCAAAAAAABBBCCCCAAAAAAABBBCCCCAAAAAAABBBCCCCAAAAAAABBBCCCCAAAAAAABBBCCCCAAAAAAABBBCCCCAA"))
}
}
})