 }
 
 
-// MARK: - AssertEqual
-
-extension RxExpectation {
-
-    private func _assertEqual<O: ObservableConvertibleType, E where E == O.E>(
-                              source: O,
-                              _ expectedEvents: [Recorded<Event<E>>],
-                              _ recordedEventFilter: Recorded<Event<E>> -> Bool,
-                              _ predicate: ((Recorded<Event<E>>, Recorded<Event<E>>) -> Bool),
-                              file: StaticString = #file,
-                              line: UInt = #line) {
+// MARK: - Assert
+
+extension RxExpectation {
+
+    private func _assert<O: ObservableConvertibleType, E where E == O.E>(
+                         source: O,
+                         expectedEvents: [Recorded<Event<E>>],
+                         recordedEventFilter: Recorded<Event<E>> -> Bool,
+                         condition: ((Recorded<Event<E>>, Recorded<Event<E>>) -> Bool),
+                         file: StaticString = #file,
+                         line: UInt = #line) {
         guard let testCase = self._testCase else { return }
         let recorder = self.scheduler.createObserver(E)
         let disposeBag = DisposeBag()

            XCTAssertEqual(error, nil, file: file, line: line)
            let recordedEvents = recorder.events.filter(recordedEventFilter)
            let isCountEqual = expectedEvents.count == recordedEvents.count
            let isValueEqual = !zip(expectedEvents, recordedEvents).lazy.contains { !predicate($0, $1) }
            let isSucceeded = isCountEqual && isValueEqual
            let expectedEventsDescription = String(expectedEvents)
                .stringByReplacingOccurrencesOfString(String(AnyTestTime), withString: "any")
            let message = "\(self._description ?? "")\n" +


    public func input<O: ObserverType>(observer: O, _ events: [Recorded<Event<O.E>>],
                                       file: StaticString = #file, line: UInt = #line) {
        Swift.assert(!events.contains({ $0.time == AnyTestTime }), "Input events should have specific time.",
                     file: file, line: line)
        let disposable = self.scheduler.createHotObservable(events).bindTo(observer)
        self._inputDisposables.append(disposable)
        self._lastTime = events.map { $0.time }.maxElement() ?? self._lastTime
