   end
 
   test :starts_with? do
-    assert String.starts_with? "", ""
-    assert String.starts_with? "", ["", "a"]
-    assert String.starts_with? "b", ["", "a"]
-
-    assert String.starts_with? "abc", ""
-    assert String.starts_with? "abc", [""]
-
-    refute String.starts_with? "", "abc"
-    refute String.starts_with? "", [" "]
-
+    ## Normal cases ##
     assert String.starts_with? "hello", "he"
     assert String.starts_with? "hello", "hello"
     assert String.starts_with? "hello", ["hellö", "hell"]

    refute String.starts_with? "hello", ["hellö", "goodbye"]
    refute String.starts_with? "エリクシア", "仙丹"

    assert_raise ArgumentError, fn ->
      String.starts_with? "abc", [["a"], "a"]
    end
  end

  test :ends_with? do
    assert String.ends_with? "", ""
    assert String.ends_with? "", ["", "a"]
    refute String.ends_with? "", ["a", "b"]

    assert String.ends_with? "abc", ""
    assert String.ends_with? "abc", ["", "x"]

    refute String.ends_with? "", "abc"
    refute String.ends_with? "", [" "]

    assert String.ends_with? "hello", "lo"
    assert String.ends_with? "hello", "hello"
    assert String.ends_with? "hello", ["hell", "lo", "xx"]

    refute String.ends_with? "hello", ["hel", "goodbye"]
    refute String.ends_with? "エリクシア", "仙丹"

    ## Edge cases ##
    assert String.ends_with? "", ""
    assert String.ends_with? "", ["", "a"]
    refute String.ends_with? "", ["a", "b"]

    assert String.ends_with? "abc", ""
    assert String.ends_with? "abc", ["", "x"]

    refute String.ends_with? "", "abc"
    refute String.ends_with? "", [" "]

    ## Sanity checks ##
    assert String.ends_with? "", ["", ""]
    assert String.ends_with? "abc", ["", ""]
    assert_raise ArgumentError, fn ->
      String.ends_with? "abc", [["c"], "c"]
    end
