adds test for length
test for contains
adds test for negative indices
fixes negative index test
supports negative indexing by exhausting iterable