         
         scheduler.start()
         
-        XCTAssertEqual(results1.events, [
+        XCTAssertEqual(results1.events, [   // results1 の受け取ったイベントを期待値と照合:
             next(300, 4),
             next(340, 5),
             next(410, 6),

            ])
        
        
        var subject: BehaviorSubject<Int>! = nil
        var subscription: Disposable! = nil
        
        let results1 = scheduler.createObserver(Int)
        var subscription1: Disposable! = nil
        
        scheduler.scheduleAt(100) { subject = BehaviorSubject<Int>(value: 100) }
        scheduler.scheduleAt(200) { subscription = xs.subscribe(subject) }
        scheduler.scheduleAt(300) { subscription1 = subject.subscribe(results1) }
        
        scheduler.scheduleAt(500) { subject.onCompleted() }
        scheduler.scheduleAt(600) { subscription1.dispose() }

        }
        
        let scheduler = TestScheduler(initialClock: 0)
        let viewModel = MockViewModel(scheduler: scheduler) // テスト対象の ViewModel
        let results     = scheduler.createObserver(State)   // 出力結果を受け取る results
        let disposeBag  = DisposeBag()
        
        // 時刻 100 で viewModel の state を subscribe
        scheduler.scheduleAt(100) {
            viewModel.state.asObservable().subscribe(results).addDisposableTo(disposeBag) }
        
        // 200 で viewModel を load する
        scheduler.scheduleAt(200) {
            _ = viewModel.load().subscribe() }
        
        scheduler.start()
        
        XCTAssertEqual(results.events, [    // 受け取ったイベントを期待値と照合:
            next(100, .Empty),              // 時刻 100 で 値 .Empty を受け取ること
            next(200, .InProgress),         // 200 で .InProgress
            next(300, .Success)             // 300 で .Success
            ])
    }
}
