             .scientificInferiors(true),
             .scientificInferiors(false),
         ]
-        for part in parts {
+        for (index, part) in parts.enumerated() {
+            let partLine = partsLine + UInt(index) + 1
             let originalAttributes = StringStyle(.font(BONFont(name: "EBGaramond12-Regular", size: 24)!), .adapt(.control)).byAdding(part).attributes
             let adaptedAttributes = NSAttributedString.adapt(attributes: originalAttributes, to: UITraitCollection(preferredContentSizeCategory: UIContentSizeCategory.extraSmall.compatible))
 
-            XCTAssertEqual(originalAttributes.count, 3)
-            XCTAssertEqual(adaptedAttributes.count, 3)
+            XCTAssertEqual(originalAttributes.count, 3, line: partLine)
+            XCTAssertEqual(adaptedAttributes.count, 3, line: partLine)
 
             let originalFont = originalAttributes[NSFontAttributeName] as? BONFont
             let adaptedFont = adaptedAttributes[NSFontAttributeName] as? BONFont
 
-            XCTAssertNotNil(originalFont)
-            XCTAssertNotNil(adaptedFont)
+            XCTAssertNotNil(originalFont, line: partLine)
+            XCTAssertNotNil(adaptedFont, line: partLine)
 
             let originalDescriptorAttributes = originalFont?.fontDescriptor.fontAttributes
             let adaptedDescriptorAttributes = adaptedFont?.fontDescriptor.fontAttributes

            let originalFeatureAttributeArray = originalDescriptorAttributes?[BONFontDescriptorFeatureSettingsAttribute] as? NSArray
            let adaptedFeatureAttributeArray = adaptedDescriptorAttributes?[BONFontDescriptorFeatureSettingsAttribute] as? NSArray

            XCTAssertNotNil(originalFeatureAttributeArray)
            XCTAssertNotNil(adaptedFeatureAttributeArray)

            XCTAssertEqual(originalFeatureAttributeArray?.count, 1)
            XCTAssertEqual(adaptedFeatureAttributeArray?.count, 1)

            let originalFeatureAttributes = originalFeatureAttributeArray?.firstObject as? [String: Int]
            let adaptedFeatureAttributes = adaptedFeatureAttributeArray?.firstObject as? [String: Int]

            XCTAssertNotNil(originalFeatureAttributes)
            XCTAssertNotNil(adaptedFeatureAttributes)

            XCTAssertEqual(originalFeatureAttributes?[BONFontFeatureTypeIdentifierKey], adaptedFeatureAttributes?[BONFontFeatureTypeIdentifierKey])
            XCTAssertEqual(originalFeatureAttributes?[BONFontFeatureSelectorIdentifierKey], adaptedFeatureAttributes?[BONFontFeatureSelectorIdentifierKey])
        }
    }


    /// Dynamic Type adaptation
    func testFeatureSettingsAdaptation() {
        EBGaramondLoader.loadFontIfNeeded()
        let partsLine: UInt = #line; let parts: [StylePart] = [
            .numberCase(.upper),
            .numberCase(.lower),
            .numberSpacing(.monospaced),
