 		XCTAssertEqual(res.events, correctValues)
 	}
 	
-	
+    func testImmediateRetryWithoutPredicate_ImmediateError() {
+        let correctValues : [Recorded<Event<Int>>] = [
+            error(690, RepeatTestErrors.fatalError)
+        ]
+        
+        let res = scheduler.start(0, subscribed: 0, disposed: 1000) { () -> Observable<Int> in
+            return self.sampleValuesImmediateError.asObservable().retry(.Immediate(maxAttemptCount: 3), scheduler: self.scheduler)
+        }
+        
+        XCTAssertEqual(res.events, correctValues)
+    }
+
+    func testImmediateRetryWithoutPredicate_NoError() {
+        let correctValues = [
+            next(210, 1),
+            next(220, 2),
+            next(240, 3),
+            next(250, 4),
+            next(260, 5),
+            next(270, 6),
+            completed(300)
+        ]
+        
+        let res = scheduler.start(0, subscribed: 0, disposed: 1000) { () -> Observable<Int> in
+            return self.sampleValuesNeverError.asObservable().retry(.Immediate(maxAttemptCount: 3), scheduler: self.scheduler)
+        }
+        
+        XCTAssertEqual(res.events, correctValues)
+    }
+
 	func testImmediateRetryWithPredicate() {
 		let correctValues = [
 			next(210, 1),

		
		XCTAssertEqual(res.events, correctValues)
	}
	
	func testImmediateNotRetryWithPredicate() {
		let correctValues = [
			next(210, 1),


class RetryWithBehaviorTests: XCTestCase {
	var sampleValues: TestableObservable<Int>!
    var sampleValuesImmediateError: TestableObservable<Int>!
    var sampleValuesNeverError: TestableObservable<Int>!
	let scheduler = TestScheduler(initialClock: 0)
	
	override func setUp() {
