   @tag :pending
   test "the count of a multiple-item list is equal to its length" do
     count =
-      @languages
-      |> Enum.reduce(LL.new(), &LL.add(&2, &1))
-      |> LL.count()
+      LanguageList.new()
+      |> LanguageList.add("Elixir")
+      |> LanguageList.add("Prolog")
+      |> LanguageList.add("F#")
+      |> LanguageList.count()
 
-    assert count == length(@languages)
+    assert count == 3
   end
 
   @tag :pending
   test "an exciting language list" do
-    assert LL.exciting_list?(@languages)
+    assert LanguageList.exciting_list?(["Clojure", "Haskell", "Erlang", "F#", "Elixir"])
   end
 
   @tag :pending
   test "not an exciting language list" do
-    refute LL.exciting_list?(~w/Java C JavaScript/)
+    refute LanguageList.exciting_list?(["Java", "C", "JavaScript"])
   end
 end

defmodule LanguageListTest do
  use ExUnit.Case

  alias LanguageList, as: LL

  @languages ~w/Clojure Haskell Erlang F# Elixir/
  @languages_reversed Enum.reverse(@languages)

  # @tag :pending
  test "new list" do
    assert LL.new() == []
  end

  @tag :pending
  test "count an empty list" do
    assert LL.new() |> LL.count() == 0
  end

  @tag :pending

    language = "Elixir"
    list = [language]

    assert LanguageList.new() |> LanguageList.add(language) == list
  end

  @tag :pending
  test "add several languages to a list" do
    list =
      LanguageList.new()
      |> LanguageList.add("Clojure")
      |> LanguageList.add("Haskell")
      |> LanguageList.add("Erlang")
      |> LanguageList.add("F#")
      |> LanguageList.add("Elixir")

    assert list == ["Elixir", "F#", "Erlang", "Haskell", "Clojure"]
  end

  @tag :pending
  test "remove on an empty list results in error" do
    assert_raise ArgumentError, fn -> LanguageList.new() |> LanguageList.remove() end
  end

  @tag :pending
  test "add then remove results in empty list" do
    list =
      LanguageList.new()
      |> LanguageList.add("Elixir")
      |> LanguageList.remove()

    assert list == []
  end
