         _testRoundTripTypeCoercionFailure(of: [0, 1] as [UInt16], as: [Bool].self)
         _testRoundTripTypeCoercionFailure(of: [0, 1] as [UInt32], as: [Bool].self)
         _testRoundTripTypeCoercionFailure(of: [0, 1] as [UInt64], as: [Bool].self)
+        // those two tests are again type coercion tests
         _testRoundTripTypeCoercionFailure(of: [0.0, 1.0] as [Float], as: [Bool].self)
         _testRoundTripTypeCoercionFailure(of: [0.0, 1.0] as [Double], as: [Bool].self)
     }
     
     func testDecodingConcreteTypeParameter() {
         guard let encoded = try? serialization.encode(Employee.testValue) else {
-            expectUnreachable("Unable to encode Employee.")
+            XCTFail("Unable to encode Employee.")
             return
         }
         
         guard let decoded = try? serialization.decode(toType: Employee.self as Person.Type, from: encoded) else {
-            expectUnreachable("Failed to decode Employee as Person.")
+            XCTFail("Failed to decode Employee as Person.")
             return
         }
         

        do {
            let _ = try serialization.encode(NestedContainersTestType(testSuperEncoder: true))
        } catch let error as NSError {
            expectUnreachable("Caught error during encoding nested container types: \(error)")
        }
    }
    
    // MARK: - Type coercion
    func testTypeCoercion() {
        _testRoundTripTypeCoercionFailure(of: [false, true], as: [Int].self)
        _testRoundTripTypeCoercionFailure(of: [false, true], as: [Int8].self)
        _testRoundTripTypeCoercionFailure(of: [false, true], as: [Int16].self)
        _testRoundTripTypeCoercionFailure(of: [false, true], as: [Int32].self)

        do {
            let _ = try serialization.encode(NestedContainersTestType())
        } catch let error as NSError {
            XCTFail("Caught error during encoding nested container types: \(error)")
        }
    }
    
