package Ġcom . bad oo . reak t ive . observable Ċ Ċ import Ġcom . bad oo . reak t ive . test . base . assert Error Ċ import Ġcom . bad oo . reak t ive . test . observable . Test Observable Ċ import Ġcom . bad oo . reak t ive . test . observable . assert No Values Ċ import Ġcom . bad oo . reak t ive . test . observable . assert Value Ċ import Ġcom . bad oo . reak t ive . test . observable . assert Values Ċ import Ġcom . bad oo . reak t ive . test . observable . test Ċ import Ġcom . bad oo . reak t ive . test . scheduler . Test Scheduler Ċ import Ġkotlin . test . Test Ċ Ċ class ĠDe bounce Test ĊĠĠĠ Ġ: ĠObservable To Observable Tests Ġby ĠObservable To Observable Tests Impl ({ Ġdebounce ( 0 L , ĠTest Scheduler ()) Ġ}) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġupstream Ġ= ĠTest Observable < Int ?> () ĊĠĠĠ Ġprivate Ġval Ġscheduler Ġ= ĠTest Scheduler () ĊĠĠĠ Ġprivate Ġval Ġobserver Ġ= Ġupstream . de bounce ( 1 0 0 L , Ġscheduler ). test () ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdoes _ not _ emit _ WHEN _ timeout _ not _ re ached () Ġ{ ĊĠĠĠĠĠĠĠ Ġupstream . onNext ( 1 ) ĊĠĠĠĠĠĠĠ Ġscheduler . timer . advance By ( 9 9 ) ĊĊĠĠĠĠĠĠĠ Ġobserver . assert No Values () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġemits _ WHEN _ timeout _ is _ re ached () Ġ{ ĊĠĠĠĠĠĠĠ Ġupstream . onNext ( 1 ) ĊĠĠĠĠĠĠĠ Ġscheduler . timer . advance By ( 1 0 0 L ) ĊĊĠĠĠĠĠĠĠ Ġobserver . assert Value ( 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdoes _ not _ emit _ WHEN _ timeout _ since _ last _ item _ not _ re ached () Ġ{ ĊĠĠĠĠĠĠĠ Ġupstream . onNext ( 1 ) ĊĠĠĠĠĠĠĠ Ġscheduler . timer . advance By ( 5 0 L ) ĊĠĠĠĠĠĠĠ Ġupstream . onNext ( 2 ) ĊĠĠĠĠĠĠĠ Ġscheduler . timer . advance By ( 9 9 L ) ĊĊĠĠĠĠĠĠĠ Ġobserver . assert No Values () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġemits _ WHEN _ timeout _ since _ last _ item _ is _ re ached () Ġ{ ĊĠĠĠĠĠĠĠ Ġupstream . onNext ( 1 ) ĊĠĠĠĠĠĠĠ Ġscheduler . timer . advance By ( 5 0 L ) ĊĠĠĠĠĠĠĠ Ġupstream . onNext ( 2 ) ĊĠĠĠĠĠĠĠ Ġscheduler . timer . advance By ( 1 0 0 L ) ĊĊĠĠĠĠĠĠĠ Ġobserver . assert Value ( 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġemits _ last _ un processed _ item _ WHEN _ completed () Ġ{ ĊĠĠĠĠĠĠĠ Ġupstream . onNext ( 1 ) ĊĠĠĠĠĠĠĠ Ġupstream . onNext ( 2 ) ĊĠĠĠĠĠĠĠ Ġupstream . onComplete () ĊĊĠĠĠĠĠĠĠ Ġobserver . assert Value ( 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdoes _ not _ emit _ last _ item _ WHEN _ already _ emit ted _ and _ completed () Ġ{ ĊĠĠĠĠĠĠĠ Ġupstream . onNext ( 1 ) ĊĠĠĠĠĠĠĠ Ġscheduler . timer . advance By ( 1 0 0 L ) ĊĠĠĠĠĠĠĠ Ġobserver . reset () ĊĠĠĠĠĠĠĠ Ġupstream . onComplete () ĊĊĠĠĠĠĠĠĠ Ġobserver . assert No Values () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġproduces _ values _ in _ correct _ order () Ġ{ ĊĠĠĠĠĠĠĠ Ġupstream . onNext ( 0 ) ĊĠĠĠĠĠĠĠ Ġscheduler . timer . advance By ( 1 0 0 L ) ĊĊĠĠĠĠĠĠĠ Ġupstream . onNext ( 1 ) Ġ// ĠShould Ġbe Ġignored ĊĠĠĠĠĠĠĠ Ġscheduler . timer . advance By ( 9 9 L ) ĊĠĠĠĠĠĠĠ Ġupstream . onNext ( 2 ) ĊĠĠĠĠĠĠĠ Ġscheduler . timer . advance By ( 1 0 0 L ) ĊĊĠĠĠĠĠĠĠ Ġupstream . onNext ( null ) Ġ// ĠShould Ġbe Ġignored ĊĠĠĠĠĠĠĠ Ġupstream . onNext ( null ) ĊĠĠĠĠĠĠĠ Ġscheduler . timer . advance By ( 1 0 0 L ) ĊĠĠĠĠĠĠĠ Ġupstream . onNext ( 5 ) ĊĠĠĠĠĠĠĠ Ġscheduler . timer . advance By ( 1 0 0 L ) ĊĊĠĠĠĠĠĠĠ Ġupstream . onNext ( 6 ) Ġ// ĠShould Ġbe Ġignored ĊĠĠĠĠĠĠĠ Ġscheduler . timer . advance By ( 9 9 L ) ĊĠĠĠĠĠĠĠ Ġupstream . onNext ( null ) ĊĠĠĠĠĠĠĠ Ġscheduler . timer . advance By ( 1 0 0 L ) ĊĊĠĠĠĠĠĠĠ Ġupstream . onNext ( 8 ) ĊĠĠĠĠĠĠĠ Ġupstream . onComplete () ĊĊĠĠĠĠĠĠĠ Ġobserver . assert Values ( 0 , Ġ 2 , Ġnull , Ġ 5 , Ġnull , Ġ 8 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġproduces _ error _ WHEN _ source _ pro duced _ error () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġerror Ġ= ĠThrowable () ĊĊĠĠĠĠĠĠĠ Ġupstream . onNext ( 0 ) ĊĠĠĠĠĠĠĠ Ġupstream . onError ( error ) ĊĊĠĠĠĠĠĠĠ Ġobserver . assert No Values () ĊĠĠĠĠĠĠĠ Ġobserver . assert Error ( error ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġproduces _ values _ and _ error _ WHEN _ source _ pro duced _ error _ after _ timeout () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġerror Ġ= ĠThrowable () ĊĊĠĠĠĠĠĠĠ Ġupstream . onNext ( null ) ĊĠĠĠĠĠĠĠ Ġscheduler . timer . advance By ( 1 0 0 L ) ĊĠĠĠĠĠĠĠ Ġupstream . onNext ( 1 ) ĊĠĠĠĠĠĠĠ Ġscheduler . timer . advance By ( 1 0 0 L ) ĊĠĠĠĠĠĠĠ Ġupstream . onError ( error ) ĊĊĠĠĠĠĠĠĠ Ġobserver . assert Values ( null , Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġobserver . assert Error ( error ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdoes _ not _ produce _ more _ values _ WHEN _ dis posed () Ġ{ ĊĠĠĠĠĠĠĠ Ġupstream . onNext ( 0 ) ĊĠĠĠĠĠĠĠ Ġscheduler . timer . advance By ( 1 0 0 L ) ĊĠĠĠĠĠĠĠ Ġobserver . reset () ĊĊĠĠĠĠĠĠĠ Ġobserver . dispose () ĊĠĠĠĠĠĠĠ Ġupstream . onNext ( 1 ) ĊĠĠĠĠĠĠĠ Ġscheduler . timer . advance By ( 1 0 0 L ) ĊĊĠĠĠĠĠĠĠ Ġobserver . assert No Values () ĊĠĠĠ Ġ} Ċ Ċ } Ċ