package Ġuk . t ld code . math . t ld math s . big integer Ċ Ċ import Ġorg . junit . Test Ċ import Ġjava . math . BigInteger Ċ import Ġkotlin . test .* ĊĊ Ċ class ĠRange s Test Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠEmpty Test () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertTrue (( BigInteger . ONE .. BigInteger . ZERO ). isEmpty ()) ĊĠĠĠĠĠĠĠ ĠassertTrue (( BigInteger . ZERO Ġdown To ĠBigInteger . ONE ). isEmpty ()) ĊĠĠĠĠĠĠĠ ĠassertFalse (( BigInteger . ZERO .. BigInteger . ONE ). isEmpty ()) ĊĠĠĠĠĠĠĠ ĠassertFalse (( BigInteger . ONE Ġdown To ĠBigInteger . ZERO ). isEmpty ()) ĊĠĠĠĠĠĠĠ ĠassertTrue ( BigInteger Range . EMPTY . isEmpty ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠEquals Test () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertTrue (( BigInteger . ONE .. BigInteger . ZERO ) Ġ== ĠBigInteger Range . EMPTY ) ĊĠĠĠĠĠĠĠ ĠassertTrue (( BigInteger . ZERO .. BigInteger . ONE ) Ġ== Ġ( BigInteger . ZERO .. BigInteger . ONE )) ĊĠĠĠĠĠĠĠ ĠassertFalse (( BigInteger . ONE .. BigInteger . ZERO ). equals (" not Ġa Ġrange ")) ĊĠĠĠĠĠĠĠ ĠassertFalse (( BigInteger . ONE .. BigInteger . ZERO ) Ġ== Ġ( BigInteger . ZERO .. BigInteger . ONE )) ĊĊĠĠĠĠĠĠĠ ĠassertTrue (( BigInteger . ZERO Ġdown To Ġ ĠBigInteger . ONE ) Ġ== ĠBigInteger Range . EMPTY ) ĊĠĠĠĠĠĠĠ ĠassertTrue (( BigInteger . TEN Ġdown To ĠBigInteger . ZERO ) Ġ== Ġ( BigInteger . TEN Ġdown To ĠBigInteger . ZERO )) ĊĠĠĠĠĠĠĠ ĠassertFalse (( BigInteger . TEN Ġdown To ĠBigInteger . ZERO ). equals (" not Ġa Ġrange ")) ĊĠĠĠĠĠĠĠ ĠassertFalse (( BigInteger . TEN Ġdown To ĠBigInteger . ZERO ) Ġ== Ġ( BigInteger . ZERO Ġdown To ĠBigInteger . TEN )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠGet Start () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( BigInteger . ZERO , Ġ( BigInteger . ZERO .. BigInteger . ONE ). start ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠGet End Inclusive () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( BigInteger . ONE , Ġ( BigInteger . ZERO .. BigInteger . ONE ). end Inclusive ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠContains (){ ĊĠĠĠĠĠĠĠ ĠassertTrue Ġ{ ĠBigInteger . ONE Ġin ĠBigInteger . ZERO .. BigInteger . TEN Ġ} ĊĠĠĠĠĠĠĠ ĠassertFalse Ġ{ ĠBigInteger . ZERO Ġin ĠBigInteger . ONE .. BigInteger . TEN Ġ} ĊĠĠĠĠĠĠĠ ĠassertFalse Ġ{ ĠBigInteger . TEN Ġin ĠBigInteger . ZERO .. BigInteger . ONE Ġ} ĊĊĠĠĠ Ġ} ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠToString (){ ĊĠĠĠĠĠĠĠ ĠassertEquals (" 1 .. 1 0 ", ( BigInteger . ONE .. BigInteger . TEN ). toString ()) ĊĠĠĠĠĠĠĠ ĠassertEquals (" 0 .. 1 0 Ġstep Ġ 2 ", ( BigInteger . ZERO ĠĠĠ Ġ.. BigInteger . TEN Ġstep ĠBigInteger (" 2 ")). toString ()) ĊĠĠĠĠĠĠĠ ĠassertEquals (" 1 0 Ġdown To Ġ 0 Ġstep Ġ 1 ", ( BigInteger . TEN Ġdown To ĠBigInteger . ZERO ). toString ()) ĊĠĠĠ Ġ} ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠHash Code (){ ĊĠĠĠĠĠĠĠ ĠassertEquals (( BigInteger . ZERO .. BigInteger . ONE ). hashCode (), ( BigInteger . ZERO .. BigInteger . ONE ). hashCode ()) ĊĠĠĠĠĠĠĠ ĠassertEquals (( BigInteger . ONE .. BigInteger . ZERO ). hashCode (), ( BigInteger . ONE .. BigInteger . ZERO ). hashCode ()) ĊĠĠĠĠĠĠĠ Ġassert Not Equals (( BigInteger . ZERO .. BigInteger . ONE ). hashCode (), ( BigInteger . ZERO .. BigInteger . TEN ). hashCode ()) ĊĊĠĠĠĠĠĠĠ ĠassertEquals (( BigInteger . TEN Ġdown To Ġ ĠBigInteger . ONE ). hashCode (), ( BigInteger . TEN Ġdown To Ġ ĠBigInteger . ONE ). hashCode ()) ĊĠĠĠĠĠĠĠ ĠassertEquals (( BigInteger . ONE Ġdown To Ġ ĠBigInteger . TEN ). hashCode (), ( BigInteger . ONE Ġdown To Ġ ĠBigInteger . TEN ). hashCode ()) ĊĠĠĠĠĠĠĠ Ġassert Not Equals (( BigInteger . TEN Ġdown To Ġ ĠBigInteger . ONE ). hashCode (), ( BigInteger . TEN Ġdown To Ġ ĠBigInteger . TEN ). hashCode ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠZero Step (){ ĊĊĠĠĠĠĠĠĠ Ġassert Fails { get Progress ion Last Element ( BigInteger . ZERO , ĠBigInteger . ONE , ĠBigInteger . ZERO )} ĊĠĠĠĠĠĠĠ Ġassert Fails { BigInteger . ONE Ġ.. ĠBigInteger . TEN Ġstep ĠBigInteger . ZERO } ĊĠĠĠ Ġ} ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠStep (){ ĊĠĠĠĠĠĠĠ Ġval Ġstep Ġ= ĠBigInteger (" 2 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( step ,( BigInteger . ZERO .. BigInteger . TEN Ġstep Ġstep ). step ) ĊĠĠĠĠĠĠĠ ĠassertEquals (- step ,( BigInteger . TEN Ġdown To ĠBigInteger . ZERO Ġstep Ġstep ). step ) ĊĠĠĠ Ġ} Ċ }