defmodule InPlace.ArrayTest do use ExUnit.Case alias InPlace.Array test "operations" do array = Array.new(10) refute Enum.any?(1..10, fn idx -> Array.get(array, idx) end) Array.put(array, 1, 100) assert Array.get(array, 1) == 100 Array.update(array, 1, fn existing -> 2 * existing end) assert Array.get(array, 1) == 200 Array.put(array, 2, 101) Array.swap(array, 1, 2) assert Array.get(array, 1) == 101 && Array.get(array, 2) == 200 end test "copy/1, to_list/1, from_list/1" do list = [1, 2, 3, 4] array = Array.from_list(list) assert Array.to_list(array) == list array_copy = Array.copy(array) assert Array.to_list(array_copy) == Array.to_list(array) end end