Sha256: f050a3f784a3248e0abcaf0ed99cec2e8c1104e7603df8f77cb6e36a004ba0c5

Contents?: true

Size: 1.54 KB

Versions: 89

Compression:

Stored size: 1.54 KB

Contents

import org.junit.Before
import org.junit.Test
import kotlin.test.assertEquals

class SubstitutionCipherTest {

    private val KEY = "abcdefghij"
    private lateinit var cipher: Cipher

    @Before
    fun setup() {
        this.cipher = Cipher(KEY)
    }

    @Test
    fun cipherKeepsTheSubmittedKey() {
        assertEquals(KEY, cipher.key)
    }

    @Test
    fun cipherCanEncodeWithGivenKey() {
        val expectedOutput = "abcdefghij"

        assertEquals(expectedOutput, cipher.encode("aaaaaaaaaa"))
    }

    @Test
    fun cipherCanDecodeWithGivenKey() {
        val expectedOutput = "aaaaaaaaaa"

        assertEquals(expectedOutput, cipher.decode("abcdefghij"))
    }

    @Test
    fun cipherIsReversibleGivenKey() {
        val plainText = "abcdefghij"

        assertEquals(plainText, cipher.decode(cipher.encode("abcdefghij")))
    }

    @Test
    fun cipherCanDoubleShiftEncode() {
        val plainText = "iamapandabear"
        val expectedOutput = "qayaeaagaciai"

        assertEquals(expectedOutput, Cipher(plainText).encode(plainText))
    }

    @Test
    fun cipherCanWrapEncode() {
        val expectedOutput = "zabcdefghi"

        assertEquals(expectedOutput, cipher.encode("zzzzzzzzzz"))
    }

    @Test
    fun cipherCanEncodeMessageThatIsShorterThanTheKey() {
        val expectedOutput = "abcde"

        assertEquals(expectedOutput, cipher.encode("aaaaa"))
    }

    @Test
    fun cipherCanDecodeMessageThatIsShorterThanTheKey() {
        val expectedOutput = "aaaaa"

        assertEquals(expectedOutput, cipher.decode("abcde"))
    }
}

Version data entries

89 entries across 89 versions & 1 rubygems

Version Path
trackler-2.0.6.33 tracks/kotlin/exercises/simple-cipher/src/test/kotlin/SubstitutionCipherTest.kt
trackler-2.0.6.32 tracks/kotlin/exercises/simple-cipher/src/test/kotlin/SubstitutionCipherTest.kt
trackler-2.0.6.31 tracks/kotlin/exercises/simple-cipher/src/test/kotlin/SubstitutionCipherTest.kt
trackler-2.0.6.30 tracks/kotlin/exercises/simple-cipher/src/test/kotlin/SubstitutionCipherTest.kt
trackler-2.0.6.29 tracks/kotlin/exercises/simple-cipher/src/test/kotlin/SubstitutionCipherTest.kt
trackler-2.0.6.28 tracks/kotlin/exercises/simple-cipher/src/test/kotlin/SubstitutionCipherTest.kt
trackler-2.0.6.27 tracks/kotlin/exercises/simple-cipher/src/test/kotlin/SubstitutionCipherTest.kt
trackler-2.0.6.26 tracks/kotlin/exercises/simple-cipher/src/test/kotlin/SubstitutionCipherTest.kt
trackler-2.0.6.25 tracks/kotlin/exercises/simple-cipher/src/test/kotlin/SubstitutionCipherTest.kt
trackler-2.0.6.24 tracks/kotlin/exercises/simple-cipher/src/test/kotlin/SubstitutionCipherTest.kt
trackler-2.0.6.23 tracks/kotlin/exercises/simple-cipher/src/test/kotlin/SubstitutionCipherTest.kt
trackler-2.0.6.22 tracks/kotlin/exercises/simple-cipher/src/test/kotlin/SubstitutionCipherTest.kt
trackler-2.0.6.21 tracks/kotlin/exercises/simple-cipher/src/test/kotlin/SubstitutionCipherTest.kt
trackler-2.0.6.20 tracks/kotlin/exercises/simple-cipher/src/test/kotlin/SubstitutionCipherTest.kt
trackler-2.0.6.19 tracks/kotlin/exercises/simple-cipher/src/test/kotlin/SubstitutionCipherTest.kt
trackler-2.0.6.18 tracks/kotlin/exercises/simple-cipher/src/test/kotlin/SubstitutionCipherTest.kt
trackler-2.0.6.17 tracks/kotlin/exercises/simple-cipher/src/test/kotlin/SubstitutionCipherTest.kt
trackler-2.0.6.16 tracks/kotlin/exercises/simple-cipher/src/test/kotlin/SubstitutionCipherTest.kt
trackler-2.0.6.15 tracks/kotlin/exercises/simple-cipher/src/test/kotlin/SubstitutionCipherTest.kt
trackler-2.0.6.14 tracks/kotlin/exercises/simple-cipher/src/test/kotlin/SubstitutionCipherTest.kt