package jp.co.dwango.s99

import org.scalatest.diagrams.Diagrams
import org.scalatest.funspec.AnyFunSpec

class P13Spec extends AnyFunSpec with Diagrams {
  describe("P13") {
    it("for empty list, encodeDirect(s) is s") {
      assert(P13.encodeDirect(List.empty[Int]) == List.empty[(Int, Int)])
    }
    it("for list has one element, encodeDirect(s) is List((1, s))") {
      assert(P13.encodeDirect(List(2)) == List((1, 2)))
    }
    it("otherwise") {
      assert(P13.encodeDirect(List(1, 1)) == List((2, 1)))
      assert(P13.encodeDirect(List(1, 1, 2)) == List((2, 1), (1, 2)))
      assert(P13.encodeDirect(List(1, 1, 2, 3)) == List((2, 1), (1, 2), (1, 3)))
      assert(
        P13.encodeDirect(List(1, 1, 2, 2, 3)) == List((2, 1), (2, 2), (1, 3))
      )
    }
  }
}