         let expectation = expectationWithDescription("Expected after time")
         let date = NSDate()
         let timeDelay = 1.0
-        let upperTimeDelay = timeDelay + 0.2
+        let lowerTimeDelay = timeDelay - timeMargin
+        let upperTimeDelay = timeDelay + timeMargin
         Async.background(after: timeDelay) {
             let timePassed = NSDate().timeIntervalSinceDate(date)
-            XCTAssert(timePassed >= timeDelay, "Should wait \(timeDelay) seconds before firing")
+            XCTAssert(timePassed >= lowerTimeDelay, "Should wait \(timePassed) >= \(lowerTimeDelay) seconds before firing")
             XCTAssert(timePassed < upperTimeDelay, "Shouldn't wait \(timePassed), but <\(upperTimeDelay) seconds before firing")
             XCTAssertEqual(qos_class_self(), QOS_CLASS_BACKGROUND, "On background queue")
             expectation.fulfill()

        let expectation = expectationWithDescription("Expected after time")
        let date = NSDate()
        let timeDelay = 1.0
        let upperTimeDelay = timeDelay + 0.2
        Async.userInitiated(after: timeDelay) {
            let timePassed = NSDate().timeIntervalSinceDate(date)
            XCTAssert(timePassed >= timeDelay, "Should wait \(timeDelay) seconds before firing")
            XCTAssert(timePassed < upperTimeDelay, "Shouldn't wait \(timePassed), but <\(upperTimeDelay) seconds before firing")
            XCTAssertEqual(qos_class_self(), QOS_CLASS_USER_INITIATED, "On user initiated queue")
            expectation.fulfill()

        let expectation = expectationWithDescription("Expected after time")
        let date = NSDate()
        let timeDelay = 1.0
        let lowerTimeDelay = timeDelay - timeMargin
        let upperTimeDelay = timeDelay + timeMargin
        Async.userInteractive(after: timeDelay) {
            let timePassed = NSDate().timeIntervalSinceDate(date)
            XCTAssert(timePassed >= lowerTimeDelay, "Should wait \(timePassed) >= \(lowerTimeDelay) seconds before firing")
            XCTAssert(timePassed < upperTimeDelay, "Shouldn't wait \(timePassed), but <\(upperTimeDelay) seconds before firing")
            XCTAssertEqual(qos_class_self(), QOS_CLASS_USER_INTERACTIVE, "On user interactive queue")
            expectation.fulfill()
