package Ġnn l . ro cks . k act o os . test Ċ Ċ import Ġkotlin . test . assertEquals Ċ import Ġkotlin . test . assert Fails With Ċ import Ġkotlin . test . assertFalse Ċ import Ġkotlin . test . assertTrue Ċ Ċ class ĠBe haves As Iterator < T Ġ: ĠAny >( ĊĠĠĠ Ġorigin : ĠIterator < T >, ĊĠĠĠ Ġexpected : ĠArray < T > Ċ ) Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( value Ġin Ġexpected ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue (" Expected Ġto Ġhave Ġnext Ġelement Ġin Ġiterator ") Ġ{ Ġorigin . hasNext () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( value , Ġorigin . next (), Ġ" Expected Ġvalue Ġmismatch ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertFalse ( origin . hasNext (), Ġ" Expected Ġend Ġof Ġiterator ") ĊĠĠĠĠĠĠĠ Ġassert Fails With ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNoSuch ElementException :: class , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Iterator Ġdoes Ġnot Ġthrows ĠNoSuch ElementException Ġat Ġend " ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġorigin . next () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ