         // When
         for _ in 1 ..< 10 {
             variable.value = 1
+
+            // Then
+            XCTAssertEqual(newValue, 1)
+            XCTAssertEqual(oldValue, 0)
         }
 
-        // Then
         waitForExpectations(timeout: 0.1, handler: nil)
     }
 
-    // MARK: - Test deinit of dispose bag
+    // MARK: - Test deallocated dispose bag
 
-    func testObservableShouldNotInformObserverAfterDeinitOfDisposeBag() {
+    func testObservableShouldNotInformObserverAfterDeallocatedDisposeBag() {
         // Given
         let variable = Variable(0)
 


    // MARK: - Test method `observeDistinct(:)`

    func testObservableShouldUpdateDistinctObserverJustOnce() {
        // Given
        let expectation = self.expectation(description: "Expected distinct observer to be informed just once.")

        let variable = Variable(0)
        variable.asObservable.subscribeDistinct { _, oldValue in
            guard oldValue != nil else {
                // Skip initial call to observer.
                return
            }

            expectation.fulfill()
        }.add(to: &disposeBag)


    // MARK: - Test method `observe(filter:)`

    func testObservableShouldUpdateObserverOnlyIfFilterMatches() {
        // Given
        let assertNewValueIsEven: (Int, Int?) -> Bool = { newValue, _ in
            newValue.isEven
        }

