# Principled Programming / Tim Teitelbaum / Chapter 18.
from arraylist import ArrayList

def diag()-> None:
    print("size:", collection.size())
    print("is_empty:", collection.is_empty())
    print("contains 10:", collection.contains(10))
    print("contains 20:", collection.contains(20))
    print("index of 10:", collection.index_of(10))
    print("index of 20:", collection.index_of(20))
    print("-------")

collection: ArrayList[int] = ArrayList[int](); print("new array list:"); diag()
collection.add(10); print("add 10"); diag()
collection.add(20); print("add 20") ; diag()
collection.remove_by_value(10); print("remove by value 10"); diag()
collection.add(10,0); print("add 10 at index 0"); diag()
collection.add(15,1); print("add 15 at index 1"); diag()
v: int = collection.get(1); print("item at 1", v); diag()
v = collection.set(1, 16); print("set:", v, "at index 1 with 16"); diag()
v = collection.get(1); print("item at 1 is:", v); diag()
collection.remove(1); print("remove item at 1"); diag()