diff --git a/.vscode/tasks.json b/.vscode/tasks.json
index 1535bca6..1df85c24 100644
--- a/.vscode/tasks.json
+++ b/.vscode/tasks.json
@@ -6,7 +6,7 @@
{
"label": "swift test",
"type": "shell",
- "command": "swift test"
+ "command": "swift test --parallel"
}
]
}
diff --git a/Dangerfile.swift b/Dangerfile.swift
index 1f9e4348..aec0ea51 100644
--- a/Dangerfile.swift
+++ b/Dangerfile.swift
@@ -6,3 +6,9 @@
import Danger
SwiftLint.lint(inline: true, configFile: ".swiftlint.yml", strict: true)
+
+let danger = Danger()
+
+print("Calling SwiftFormat...")
+
+danger.utils.exec("swiftformat", arguments: ["."])
diff --git a/Sources/XMLCoder/Auxiliaries/XMLCoderElement.swift b/Sources/XMLCoder/Auxiliaries/XMLCoderElement.swift
index 146b3906..0b6fe835 100644
--- a/Sources/XMLCoder/Auxiliaries/XMLCoderElement.swift
+++ b/Sources/XMLCoder/Auxiliaries/XMLCoderElement.swift
@@ -122,18 +122,22 @@ struct XMLCoderElement: Equatable {
return KeyedBox(elements: elements, attributes: attributes)
}
- func toXMLString(with header: XMLHeader? = nil,
- formatting: XMLEncoder.OutputFormatting) -> String {
+ func toXMLString(
+ with header: XMLHeader? = nil,
+ formatting: XMLEncoder.OutputFormatting,
+ indentation: XMLEncoder.PrettyPrintIndentation
+ ) -> String {
if let header = header, let headerXML = header.toXML() {
- return headerXML + _toXMLString(formatting: formatting)
+ return headerXML + _toXMLString(formatting, indentation)
}
- return _toXMLString(formatting: formatting)
+ return _toXMLString(formatting, indentation)
}
private func formatUnsortedXMLElements(
_ string: inout String,
_ level: Int,
_ formatting: XMLEncoder.OutputFormatting,
+ _ indentation: XMLEncoder.PrettyPrintIndentation,
_ prettyPrinted: Bool
) {
formatXMLElements(
@@ -141,6 +145,7 @@ struct XMLCoderElement: Equatable {
into: &string,
at: level,
formatting: formatting,
+ indentation: indentation,
prettyPrinted: prettyPrinted
)
}
@@ -149,6 +154,7 @@ struct XMLCoderElement: Equatable {
for element: XMLCoderElement,
at level: Int,
formatting: XMLEncoder.OutputFormatting,
+ indentation: XMLEncoder.PrettyPrintIndentation,
prettyPrinted: Bool
) -> String {
if let stringValue = element.stringValue {
@@ -160,9 +166,7 @@ struct XMLCoderElement: Equatable {
}
var string = ""
- string += element._toXMLString(
- indented: level + 1, formatting: formatting
- )
+ string += element._toXMLString(indented: level + 1, formatting, indentation)
string += prettyPrinted ? "\n" : ""
return string
}
@@ -171,12 +175,14 @@ struct XMLCoderElement: Equatable {
_ string: inout String,
_ level: Int,
_ formatting: XMLEncoder.OutputFormatting,
+ _ indentation: XMLEncoder.PrettyPrintIndentation,
_ prettyPrinted: Bool
) {
formatXMLElements(from: elements.sorted { $0.key < $1.key },
into: &string,
at: level,
formatting: formatting,
+ indentation: indentation,
prettyPrinted: prettyPrinted)
}
@@ -198,12 +204,14 @@ struct XMLCoderElement: Equatable {
into string: inout String,
at level: Int,
formatting: XMLEncoder.OutputFormatting,
+ indentation: XMLEncoder.PrettyPrintIndentation,
prettyPrinted: Bool
) {
for element in elements {
string += elementString(for: element,
at: level,
formatting: formatting,
+ indentation: indentation,
prettyPrinted: prettyPrinted && !containsTextNodes)
}
}
@@ -231,30 +239,38 @@ struct XMLCoderElement: Equatable {
private func formatXMLElements(
_ formatting: XMLEncoder.OutputFormatting,
+ _ indentation: XMLEncoder.PrettyPrintIndentation,
_ string: inout String,
_ level: Int,
_ prettyPrinted: Bool
) {
if formatting.contains(.sortedKeys) {
formatSortedXMLElements(
- &string, level, formatting, prettyPrinted
+ &string, level, formatting, indentation, prettyPrinted
)
return
}
formatUnsortedXMLElements(
- &string, level, formatting, prettyPrinted
+ &string, level, formatting, indentation, prettyPrinted
)
}
private func _toXMLString(
indented level: Int = 0,
- formatting: XMLEncoder.OutputFormatting
+ _ formatting: XMLEncoder.OutputFormatting,
+ _ indentation: XMLEncoder.PrettyPrintIndentation
) -> String {
let prettyPrinted = formatting.contains(.prettyPrinted)
- let indentation = String(
- repeating: " ", count: (prettyPrinted ? level : 0) * 4
- )
- var string = indentation
+ let prefix: String
+ switch indentation {
+ case let .spaces(count) where prettyPrinted:
+ prefix = String(repeating: " ", count: level * count)
+ case let .tabs(count) where prettyPrinted:
+ prefix = String(repeating: "\t", count: level * count)
+ default:
+ prefix = ""
+ }
+ var string = prefix
if !key.isEmpty {
string += "<\(key)"
@@ -267,9 +283,9 @@ struct XMLCoderElement: Equatable {
if !key.isEmpty {
string += prettyPrintElements ? ">\n" : ">"
}
- formatXMLElements(formatting, &string, level, prettyPrintElements)
+ formatXMLElements(formatting, indentation, &string, level, prettyPrintElements)
- if prettyPrintElements { string += indentation }
+ if prettyPrintElements { string += prefix }
if !key.isEmpty {
string += "\(key)>"
}
diff --git a/Sources/XMLCoder/Encoder/XMLEncoder.swift b/Sources/XMLCoder/Encoder/XMLEncoder.swift
index ca32c333..acdd1fe9 100644
--- a/Sources/XMLCoder/Encoder/XMLEncoder.swift
+++ b/Sources/XMLCoder/Encoder/XMLEncoder.swift
@@ -33,6 +33,12 @@ open class XMLEncoder {
public static let sortedKeys = OutputFormatting(rawValue: 1 << 1)
}
+ /// The identation to use when XML is pretty-printed.
+ public enum PrettyPrintIndentation {
+ case spaces(Int)
+ case tabs(Int)
+ }
+
/// A node's encoding type
public enum NodeEncoding {
case attribute
@@ -264,6 +270,9 @@ open class XMLEncoder {
/// The output format to produce. Defaults to `[]`.
open var outputFormatting: OutputFormatting = []
+ /// The indentation to use when XML is printed. Defaults to `.spaces(4)`.
+ open var prettyPrintIndentation: PrettyPrintIndentation = .spaces(4)
+
/// The strategy to use in encoding dates. Defaults to `.deferredToDate`.
open var dateEncodingStrategy: DateEncodingStrategy = .deferredToDate
@@ -373,8 +382,11 @@ open class XMLEncoder {
))
}
- return element.toXMLString(with: header, formatting: outputFormatting)
- .data(using: .utf8, allowLossyConversion: true)!
+ return element.toXMLString(
+ with: header,
+ formatting: outputFormatting,
+ indentation: prettyPrintIndentation
+ ).data(using: .utf8, allowLossyConversion: true)!
}
// MARK: - TopLevelEncoder
diff --git a/Tests/XMLCoderTests/AttributedEnumIntrinsicTest.swift b/Tests/XMLCoderTests/AdvancedFeatures/AttributedEnumIntrinsicTest.swift
similarity index 100%
rename from Tests/XMLCoderTests/AttributedEnumIntrinsicTest.swift
rename to Tests/XMLCoderTests/AdvancedFeatures/AttributedEnumIntrinsicTest.swift
diff --git a/Tests/XMLCoderTests/AttributedIntrinsicTest.swift b/Tests/XMLCoderTests/AdvancedFeatures/AttributedIntrinsicTest.swift
similarity index 100%
rename from Tests/XMLCoderTests/AttributedIntrinsicTest.swift
rename to Tests/XMLCoderTests/AdvancedFeatures/AttributedIntrinsicTest.swift
diff --git a/Tests/XMLCoderTests/CompositeChoiceTests.swift b/Tests/XMLCoderTests/AdvancedFeatures/CompositeChoiceTests.swift
similarity index 100%
rename from Tests/XMLCoderTests/CompositeChoiceTests.swift
rename to Tests/XMLCoderTests/AdvancedFeatures/CompositeChoiceTests.swift
diff --git a/Tests/XMLCoderTests/DynamicNodeDecodingTest.swift b/Tests/XMLCoderTests/AdvancedFeatures/DynamicNodeDecodingTest.swift
similarity index 100%
rename from Tests/XMLCoderTests/DynamicNodeDecodingTest.swift
rename to Tests/XMLCoderTests/AdvancedFeatures/DynamicNodeDecodingTest.swift
diff --git a/Tests/XMLCoderTests/DynamicNodeEncodingTest.swift b/Tests/XMLCoderTests/AdvancedFeatures/DynamicNodeEncodingTest.swift
similarity index 100%
rename from Tests/XMLCoderTests/DynamicNodeEncodingTest.swift
rename to Tests/XMLCoderTests/AdvancedFeatures/DynamicNodeEncodingTest.swift
diff --git a/Tests/XMLCoderTests/ErrorContextTest.swift b/Tests/XMLCoderTests/AdvancedFeatures/ErrorContextTest.swift
similarity index 100%
rename from Tests/XMLCoderTests/ErrorContextTest.swift
rename to Tests/XMLCoderTests/AdvancedFeatures/ErrorContextTest.swift
diff --git a/Tests/XMLCoderTests/MixedChoiceAndNonChoiceTests.swift b/Tests/XMLCoderTests/AdvancedFeatures/MixedChoiceAndNonChoiceTests.swift
similarity index 100%
rename from Tests/XMLCoderTests/MixedChoiceAndNonChoiceTests.swift
rename to Tests/XMLCoderTests/AdvancedFeatures/MixedChoiceAndNonChoiceTests.swift
diff --git a/Tests/XMLCoderTests/NestedAttributeChoiceTests.swift b/Tests/XMLCoderTests/AdvancedFeatures/NestedAttributeChoiceTests.swift
similarity index 100%
rename from Tests/XMLCoderTests/NestedAttributeChoiceTests.swift
rename to Tests/XMLCoderTests/AdvancedFeatures/NestedAttributeChoiceTests.swift
diff --git a/Tests/XMLCoderTests/NestedChoiceArrayTest.swift b/Tests/XMLCoderTests/AdvancedFeatures/NestedChoiceArrayTest.swift
similarity index 100%
rename from Tests/XMLCoderTests/NestedChoiceArrayTest.swift
rename to Tests/XMLCoderTests/AdvancedFeatures/NestedChoiceArrayTest.swift
diff --git a/Tests/XMLCoderTests/NestedChoiceTests.swift b/Tests/XMLCoderTests/AdvancedFeatures/NestedChoiceTests.swift
similarity index 100%
rename from Tests/XMLCoderTests/NestedChoiceTests.swift
rename to Tests/XMLCoderTests/AdvancedFeatures/NestedChoiceTests.swift
diff --git a/Tests/XMLCoderTests/SimpleChoiceTests.swift b/Tests/XMLCoderTests/AdvancedFeatures/SimpleChoiceTests.swift
similarity index 100%
rename from Tests/XMLCoderTests/SimpleChoiceTests.swift
rename to Tests/XMLCoderTests/AdvancedFeatures/SimpleChoiceTests.swift
diff --git a/Tests/XMLCoderTests/BooksTest.swift b/Tests/XMLCoderTests/EndToEnd/BooksTest.swift
similarity index 100%
rename from Tests/XMLCoderTests/BooksTest.swift
rename to Tests/XMLCoderTests/EndToEnd/BooksTest.swift
diff --git a/Tests/XMLCoderTests/BorderTest.swift b/Tests/XMLCoderTests/EndToEnd/BorderTest.swift
similarity index 100%
rename from Tests/XMLCoderTests/BorderTest.swift
rename to Tests/XMLCoderTests/EndToEnd/BorderTest.swift
diff --git a/Tests/XMLCoderTests/BreakfastTest.swift b/Tests/XMLCoderTests/EndToEnd/BreakfastTest.swift
similarity index 100%
rename from Tests/XMLCoderTests/BreakfastTest.swift
rename to Tests/XMLCoderTests/EndToEnd/BreakfastTest.swift
diff --git a/Tests/XMLCoderTests/CDCatalog.swift b/Tests/XMLCoderTests/EndToEnd/CDCatalog.swift
similarity index 100%
rename from Tests/XMLCoderTests/CDCatalog.swift
rename to Tests/XMLCoderTests/EndToEnd/CDCatalog.swift
diff --git a/Tests/XMLCoderTests/CDTest.swift b/Tests/XMLCoderTests/EndToEnd/CDTest.swift
similarity index 100%
rename from Tests/XMLCoderTests/CDTest.swift
rename to Tests/XMLCoderTests/EndToEnd/CDTest.swift
diff --git a/Tests/XMLCoderTests/NoteTest.swift b/Tests/XMLCoderTests/EndToEnd/NoteTest.swift
similarity index 100%
rename from Tests/XMLCoderTests/NoteTest.swift
rename to Tests/XMLCoderTests/EndToEnd/NoteTest.swift
diff --git a/Tests/XMLCoderTests/PlantCatalog.swift b/Tests/XMLCoderTests/EndToEnd/PlantCatalog.swift
similarity index 100%
rename from Tests/XMLCoderTests/PlantCatalog.swift
rename to Tests/XMLCoderTests/EndToEnd/PlantCatalog.swift
diff --git a/Tests/XMLCoderTests/PlantTest.swift b/Tests/XMLCoderTests/EndToEnd/PlantTest.swift
similarity index 100%
rename from Tests/XMLCoderTests/PlantTest.swift
rename to Tests/XMLCoderTests/EndToEnd/PlantTest.swift
diff --git a/Tests/XMLCoderTests/RJISample.swift b/Tests/XMLCoderTests/EndToEnd/RJISample.swift
similarity index 100%
rename from Tests/XMLCoderTests/RJISample.swift
rename to Tests/XMLCoderTests/EndToEnd/RJISample.swift
diff --git a/Tests/XMLCoderTests/RJITest.swift b/Tests/XMLCoderTests/EndToEnd/RJITest.swift
similarity index 100%
rename from Tests/XMLCoderTests/RJITest.swift
rename to Tests/XMLCoderTests/EndToEnd/RJITest.swift
diff --git a/Tests/XMLCoderTests/RelationshipsTest.swift b/Tests/XMLCoderTests/EndToEnd/RelationshipsTest.swift
similarity index 100%
rename from Tests/XMLCoderTests/RelationshipsTest.swift
rename to Tests/XMLCoderTests/EndToEnd/RelationshipsTest.swift
diff --git a/Tests/XMLCoderTests/PrettyPrintTest.swift b/Tests/XMLCoderTests/PrettyPrintTest.swift
new file mode 100644
index 00000000..89f05fa7
--- /dev/null
+++ b/Tests/XMLCoderTests/PrettyPrintTest.swift
@@ -0,0 +1,78 @@
+// Copyright (c) 2020 XMLCoder contributors
+//
+// This software is released under the MIT License.
+// https://opensource.org/licenses/MIT
+
+import XCTest
+import XMLCoder
+
+private struct TopContainer: Encodable {
+ let nested: NestedContainer
+}
+
+private struct NestedContainer: Encodable {
+ let values: [String]
+}
+
+final class PrettyPrintTest: XCTestCase {
+ private let testContainer = TopContainer(nested: NestedContainer(values: ["foor", "bar"]))
+
+ func testDefaultIndentation() throws {
+ let encoder = XMLEncoder()
+ encoder.outputFormatting = [.prettyPrinted]
+
+ let encoded = try encoder.encode(testContainer)
+
+ XCTAssertEqual(
+ String(data: encoded, encoding: .utf8)!,
+ """
+
+
+ foor
+ bar
+
+
+ """
+ )
+ }
+
+ func testSpaces() throws {
+ let encoder = XMLEncoder()
+ encoder.outputFormatting = [.prettyPrinted]
+ encoder.prettyPrintIndentation = .spaces(3)
+
+ let encoded = try encoder.encode(testContainer)
+
+ XCTAssertEqual(
+ String(data: encoded, encoding: .utf8)!,
+ """
+
+
+ foor
+ bar
+
+
+ """
+ )
+ }
+
+ func testTabs() throws {
+ let encoder = XMLEncoder()
+ encoder.outputFormatting = [.prettyPrinted]
+ encoder.prettyPrintIndentation = .tabs(2)
+
+ let encoded = try encoder.encode(testContainer)
+
+ XCTAssertEqual(
+ String(data: encoded, encoding: .utf8)!,
+ """
+
+ \t\t
+ \t\t\t\tfoor
+ \t\t\t\tbar
+ \t\t
+
+ """
+ )
+ }
+}
diff --git a/Tests/XMLCoderTests/XCTestManifests.swift b/Tests/XMLCoderTests/XCTestManifests.swift
index 9162fa8d..a642da53 100644
--- a/Tests/XMLCoderTests/XCTestManifests.swift
+++ b/Tests/XMLCoderTests/XCTestManifests.swift
@@ -125,6 +125,7 @@ extension CDATATest {
// `swift test --generate-linuxmain`
// to regenerate.
static let __allTests__CDATATest = [
+ ("testCDataTypes", testCDataTypes),
("testXML", testXML),
]
}
@@ -585,6 +586,17 @@ extension PlantTest {
]
}
+extension PrettyPrintTest {
+ // DO NOT MODIFY: This is autogenerated, use:
+ // `swift test --generate-linuxmain`
+ // to regenerate.
+ static let __allTests__PrettyPrintTest = [
+ ("testDefaultIndentation", testDefaultIndentation),
+ ("testSpaces", testSpaces),
+ ("testTabs", testTabs),
+ ]
+}
+
extension QuoteDecodingTest {
// DO NOT MODIFY: This is autogenerated, use:
// `swift test --generate-linuxmain`
@@ -898,6 +910,7 @@ public func __allTests() -> [XCTestCaseEntry] {
testCase(NullTests.__allTests__NullTests),
testCase(OptionalTests.__allTests__OptionalTests),
testCase(PlantTest.__allTests__PlantTest),
+ testCase(PrettyPrintTest.__allTests__PrettyPrintTest),
testCase(QuoteDecodingTest.__allTests__QuoteDecodingTest),
testCase(RJITest.__allTests__RJITest),
testCase(RelationshipsTest.__allTests__RelationshipsTest),
diff --git a/XMLCoder.xcodeproj/project.pbxproj b/XMLCoder.xcodeproj/project.pbxproj
index 0d988a94..44db9194 100644
--- a/XMLCoder.xcodeproj/project.pbxproj
+++ b/XMLCoder.xcodeproj/project.pbxproj
@@ -25,13 +25,35 @@
4A062D4F2341924E009BCAC1 /* CombineTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A062D4E2341924E009BCAC1 /* CombineTests.swift */; };
970FA9DC2422EFAE0023C1EC /* RootLevetExtraAttributesTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 970FA9DB2422EFAE0023C1EC /* RootLevetExtraAttributesTests.swift */; };
B54555BC2343F5C1000D4128 /* EmptyArrayTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = B54555BB2343F5C1000D4128 /* EmptyArrayTest.swift */; };
- B5E67533238B47E5006C8548 /* MixedChoiceAndNonChoiceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5E67532238B47E5006C8548 /* MixedChoiceAndNonChoiceTests.swift */; };
B5E67535238B4960006C8548 /* IntOrString.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5E67534238B4960006C8548 /* IntOrString.swift */; };
- B5EA3BB6230F237800D8D69B /* NestedChoiceArrayTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5EA3BB4230F235C00D8D69B /* NestedChoiceArrayTest.swift */; };
B5F74472233F74E400BBDB15 /* RootLevelAttributeTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5F74471233F74E400BBDB15 /* RootLevelAttributeTest.swift */; };
D11E094623491BCE00C24DCB /* DoubleBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = D11E094523491BCE00C24DCB /* DoubleBox.swift */; };
D11E094A234924C500C24DCB /* ValueBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = D11E0949234924C500C24DCB /* ValueBox.swift */; };
D18FBFB82348FAE500FA4F65 /* QuoteDecodingTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D18FBFB72348FAE500FA4F65 /* QuoteDecodingTest.swift */; };
+ D1A1838524842C980058E66D /* PrettyPrintTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1A1838024842C7D0058E66D /* PrettyPrintTest.swift */; };
+ D1A1838624842C9E0058E66D /* CDATATest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1A1838324842C920058E66D /* CDATATest.swift */; };
+ D1A183B524842DE10058E66D /* CDCatalog.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1A1839424842D710058E66D /* CDCatalog.swift */; };
+ D1A183B624842DE20058E66D /* BooksTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1A1839524842D710058E66D /* BooksTest.swift */; };
+ D1A183B724842DE20058E66D /* NoteTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1A1839624842D710058E66D /* NoteTest.swift */; };
+ D1A183B824842DE20058E66D /* CDTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1A1839724842D710058E66D /* CDTest.swift */; };
+ D1A183B924842DE20058E66D /* RelationshipsTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1A1839824842D710058E66D /* RelationshipsTest.swift */; };
+ D1A183BA24842DE20058E66D /* PlantTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1A1839924842D710058E66D /* PlantTest.swift */; };
+ D1A183BB24842DE20058E66D /* BreakfastTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1A1839A24842D710058E66D /* BreakfastTest.swift */; };
+ D1A183BC24842DE20058E66D /* RJISample.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1A1839B24842D710058E66D /* RJISample.swift */; };
+ D1A183BD24842DE20058E66D /* PlantCatalog.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1A1839C24842D710058E66D /* PlantCatalog.swift */; };
+ D1A183BE24842DE20058E66D /* RJITest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1A1839D24842D710058E66D /* RJITest.swift */; };
+ D1A183BF24842DE20058E66D /* BorderTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1A1839E24842D710058E66D /* BorderTest.swift */; };
+ D1A183C024842DE80058E66D /* DynamicNodeDecodingTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1A1838824842D710058E66D /* DynamicNodeDecodingTest.swift */; };
+ D1A183C124842DE80058E66D /* AttributedEnumIntrinsicTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1A1838924842D710058E66D /* AttributedEnumIntrinsicTest.swift */; };
+ D1A183C224842DE80058E66D /* NestedChoiceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1A1838A24842D710058E66D /* NestedChoiceTests.swift */; };
+ D1A183C324842DE80058E66D /* AttributedIntrinsicTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1A1838B24842D710058E66D /* AttributedIntrinsicTest.swift */; };
+ D1A183C424842DE80058E66D /* MixedChoiceAndNonChoiceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1A1838C24842D710058E66D /* MixedChoiceAndNonChoiceTests.swift */; };
+ D1A183C524842DE80058E66D /* SimpleChoiceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1A1838D24842D710058E66D /* SimpleChoiceTests.swift */; };
+ D1A183C624842DE80058E66D /* NestedAttributeChoiceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1A1838E24842D710058E66D /* NestedAttributeChoiceTests.swift */; };
+ D1A183C724842DE80058E66D /* ErrorContextTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1A1838F24842D710058E66D /* ErrorContextTest.swift */; };
+ D1A183C824842DE80058E66D /* DynamicNodeEncodingTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1A1839024842D710058E66D /* DynamicNodeEncodingTest.swift */; };
+ D1A183C924842DE80058E66D /* CompositeChoiceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1A1839124842D710058E66D /* CompositeChoiceTests.swift */; };
+ D1A183CA24842DE80058E66D /* NestedChoiceArrayTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1A1839224842D710058E66D /* NestedChoiceArrayTest.swift */; };
OBJ_148 /* BoolBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_12 /* BoolBox.swift */; };
OBJ_149 /* Box.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_13 /* Box.swift */; };
OBJ_150 /* ChoiceBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_14 /* ChoiceBox.swift */; };
@@ -77,16 +99,12 @@
OBJ_190 /* XMLReferencingEncoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_56 /* XMLReferencingEncoder.swift */; };
OBJ_191 /* XMLUnkeyedEncodingContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_57 /* XMLUnkeyedEncodingContainer.swift */; };
OBJ_198 /* Package.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_6 /* Package.swift */; };
- OBJ_209 /* AttributedEnumIntrinsicTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_60 /* AttributedEnumIntrinsicTest.swift */; };
- OBJ_210 /* AttributedIntrinsicTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_61 /* AttributedIntrinsicTest.swift */; };
OBJ_211 /* String+ExtensionsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_63 /* String+ExtensionsTests.swift */; };
OBJ_212 /* XMLElementTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_64 /* XMLElementTests.swift */; };
OBJ_213 /* XMLHeaderTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_65 /* XMLHeaderTests.swift */; };
OBJ_214 /* XMLKeyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_66 /* XMLKeyTests.swift */; };
OBJ_215 /* XMLStackParserTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_67 /* XMLStackParserTests.swift */; };
OBJ_216 /* BenchmarkTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_68 /* BenchmarkTests.swift */; };
- OBJ_217 /* BooksTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_69 /* BooksTest.swift */; };
- OBJ_218 /* BorderTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_70 /* BorderTest.swift */; };
OBJ_219 /* BoolBoxTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_72 /* BoolBoxTests.swift */; };
OBJ_220 /* DataBoxTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_73 /* DataBoxTests.swift */; };
OBJ_221 /* DateBoxTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_74 /* DateBoxTests.swift */; };
@@ -100,15 +118,8 @@
OBJ_229 /* UIntBoxTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_82 /* UIntBoxTests.swift */; };
OBJ_230 /* URLBoxTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_83 /* URLBoxTests.swift */; };
OBJ_231 /* UnkeyedBoxTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_84 /* UnkeyedBoxTests.swift */; };
- OBJ_232 /* BreakfastTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_85 /* BreakfastTest.swift */; };
- OBJ_233 /* CDCatalog.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_86 /* CDCatalog.swift */; };
- OBJ_234 /* CDTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_87 /* CDTest.swift */; };
OBJ_235 /* ClassTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_88 /* ClassTests.swift */; };
- OBJ_236 /* CompositeChoiceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_89 /* CompositeChoiceTests.swift */; };
OBJ_237 /* DecodingContainerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_90 /* DecodingContainerTests.swift */; };
- OBJ_238 /* DynamicNodeDecodingTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_91 /* DynamicNodeDecodingTest.swift */; };
- OBJ_239 /* DynamicNodeEncodingTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_92 /* DynamicNodeEncodingTest.swift */; };
- OBJ_240 /* ErrorContextTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_93 /* ErrorContextTest.swift */; };
OBJ_241 /* KeyDecodingAndEncodingStrategyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_94 /* KeyDecodingAndEncodingStrategyTests.swift */; };
OBJ_242 /* BoolTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_96 /* BoolTests.swift */; };
OBJ_243 /* BoxTreeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_97 /* BoxTreeTests.swift */; };
@@ -129,17 +140,8 @@
OBJ_258 /* UnkeyedTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_112 /* UnkeyedTests.swift */; };
OBJ_259 /* MixedContainerTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_113 /* MixedContainerTest.swift */; };
OBJ_260 /* NamespaceTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_114 /* NamespaceTest.swift */; };
- OBJ_261 /* NestedAttributeChoiceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_115 /* NestedAttributeChoiceTests.swift */; };
- OBJ_262 /* NestedChoiceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_116 /* NestedChoiceTests.swift */; };
OBJ_263 /* NestingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_117 /* NestingTests.swift */; };
OBJ_264 /* NodeEncodingStrategyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_118 /* NodeEncodingStrategyTests.swift */; };
- OBJ_265 /* NoteTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_119 /* NoteTest.swift */; };
- OBJ_266 /* PlantCatalog.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_120 /* PlantCatalog.swift */; };
- OBJ_267 /* PlantTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_121 /* PlantTest.swift */; };
- OBJ_268 /* RJISample.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_122 /* RJISample.swift */; };
- OBJ_269 /* RJITest.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_123 /* RJITest.swift */; };
- OBJ_270 /* RelationshipsTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_124 /* RelationshipsTest.swift */; };
- OBJ_271 /* SimpleChoiceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_125 /* SimpleChoiceTests.swift */; };
OBJ_272 /* SingleChildTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_126 /* SingleChildTests.swift */; };
OBJ_273 /* SpacePreserveTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_127 /* SpacePreserveTest.swift */; };
OBJ_275 /* XMLCoder.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "XMLCoder::XMLCoder::Product" /* XMLCoder.framework */; };
@@ -167,13 +169,35 @@
4A062D4E2341924E009BCAC1 /* CombineTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CombineTests.swift; sourceTree = ""; };
970FA9DB2422EFAE0023C1EC /* RootLevetExtraAttributesTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RootLevetExtraAttributesTests.swift; sourceTree = ""; };
B54555BB2343F5C1000D4128 /* EmptyArrayTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmptyArrayTest.swift; sourceTree = ""; };
- B5E67532238B47E5006C8548 /* MixedChoiceAndNonChoiceTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MixedChoiceAndNonChoiceTests.swift; sourceTree = ""; };
B5E67534238B4960006C8548 /* IntOrString.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IntOrString.swift; sourceTree = ""; };
- B5EA3BB4230F235C00D8D69B /* NestedChoiceArrayTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NestedChoiceArrayTest.swift; sourceTree = ""; };
B5F74471233F74E400BBDB15 /* RootLevelAttributeTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RootLevelAttributeTest.swift; sourceTree = ""; };
D11E094523491BCE00C24DCB /* DoubleBox.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DoubleBox.swift; sourceTree = ""; };
D11E0949234924C500C24DCB /* ValueBox.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ValueBox.swift; sourceTree = ""; };
D18FBFB72348FAE500FA4F65 /* QuoteDecodingTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuoteDecodingTest.swift; sourceTree = ""; };
+ D1A1838024842C7D0058E66D /* PrettyPrintTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PrettyPrintTest.swift; sourceTree = ""; };
+ D1A1838324842C920058E66D /* CDATATest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CDATATest.swift; sourceTree = ""; };
+ D1A1838824842D710058E66D /* DynamicNodeDecodingTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DynamicNodeDecodingTest.swift; sourceTree = ""; };
+ D1A1838924842D710058E66D /* AttributedEnumIntrinsicTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AttributedEnumIntrinsicTest.swift; sourceTree = ""; };
+ D1A1838A24842D710058E66D /* NestedChoiceTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NestedChoiceTests.swift; sourceTree = ""; };
+ D1A1838B24842D710058E66D /* AttributedIntrinsicTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AttributedIntrinsicTest.swift; sourceTree = ""; };
+ D1A1838C24842D710058E66D /* MixedChoiceAndNonChoiceTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MixedChoiceAndNonChoiceTests.swift; sourceTree = ""; };
+ D1A1838D24842D710058E66D /* SimpleChoiceTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SimpleChoiceTests.swift; sourceTree = ""; };
+ D1A1838E24842D710058E66D /* NestedAttributeChoiceTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NestedAttributeChoiceTests.swift; sourceTree = ""; };
+ D1A1838F24842D710058E66D /* ErrorContextTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ErrorContextTest.swift; sourceTree = ""; };
+ D1A1839024842D710058E66D /* DynamicNodeEncodingTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DynamicNodeEncodingTest.swift; sourceTree = ""; };
+ D1A1839124842D710058E66D /* CompositeChoiceTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CompositeChoiceTests.swift; sourceTree = ""; };
+ D1A1839224842D710058E66D /* NestedChoiceArrayTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NestedChoiceArrayTest.swift; sourceTree = ""; };
+ D1A1839424842D710058E66D /* CDCatalog.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CDCatalog.swift; sourceTree = ""; };
+ D1A1839524842D710058E66D /* BooksTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BooksTest.swift; sourceTree = ""; };
+ D1A1839624842D710058E66D /* NoteTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NoteTest.swift; sourceTree = ""; };
+ D1A1839724842D710058E66D /* CDTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CDTest.swift; sourceTree = ""; };
+ D1A1839824842D710058E66D /* RelationshipsTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RelationshipsTest.swift; sourceTree = ""; };
+ D1A1839924842D710058E66D /* PlantTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PlantTest.swift; sourceTree = ""; };
+ D1A1839A24842D710058E66D /* BreakfastTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BreakfastTest.swift; sourceTree = ""; };
+ D1A1839B24842D710058E66D /* RJISample.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RJISample.swift; sourceTree = ""; };
+ D1A1839C24842D710058E66D /* PlantCatalog.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PlantCatalog.swift; sourceTree = ""; };
+ D1A1839D24842D710058E66D /* RJITest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RJITest.swift; sourceTree = ""; };
+ D1A1839E24842D710058E66D /* BorderTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BorderTest.swift; sourceTree = ""; };
OBJ_100 /* DecimalTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DecimalTests.swift; sourceTree = ""; };
OBJ_101 /* EmptyTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmptyTests.swift; sourceTree = ""; };
OBJ_102 /* FloatTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FloatTests.swift; sourceTree = ""; };
@@ -189,18 +213,9 @@
OBJ_112 /* UnkeyedTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UnkeyedTests.swift; sourceTree = ""; };
OBJ_113 /* MixedContainerTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MixedContainerTest.swift; sourceTree = ""; };
OBJ_114 /* NamespaceTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NamespaceTest.swift; sourceTree = ""; };
- OBJ_115 /* NestedAttributeChoiceTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NestedAttributeChoiceTests.swift; sourceTree = ""; };
- OBJ_116 /* NestedChoiceTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NestedChoiceTests.swift; sourceTree = ""; };
OBJ_117 /* NestingTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NestingTests.swift; sourceTree = ""; };
OBJ_118 /* NodeEncodingStrategyTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NodeEncodingStrategyTests.swift; sourceTree = ""; };
- OBJ_119 /* NoteTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NoteTest.swift; sourceTree = ""; };
OBJ_12 /* BoolBox.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BoolBox.swift; sourceTree = ""; };
- OBJ_120 /* PlantCatalog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlantCatalog.swift; sourceTree = ""; };
- OBJ_121 /* PlantTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlantTest.swift; sourceTree = ""; };
- OBJ_122 /* RJISample.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RJISample.swift; sourceTree = ""; };
- OBJ_123 /* RJITest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RJITest.swift; sourceTree = ""; };
- OBJ_124 /* RelationshipsTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RelationshipsTest.swift; sourceTree = ""; };
- OBJ_125 /* SimpleChoiceTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SimpleChoiceTests.swift; sourceTree = ""; };
OBJ_126 /* SingleChildTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SingleChildTests.swift; sourceTree = ""; };
OBJ_127 /* SpacePreserveTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpacePreserveTest.swift; sourceTree = ""; };
OBJ_13 /* Box.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Box.swift; sourceTree = ""; };
@@ -259,16 +274,12 @@
OBJ_56 /* XMLReferencingEncoder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XMLReferencingEncoder.swift; sourceTree = ""; };
OBJ_57 /* XMLUnkeyedEncodingContainer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XMLUnkeyedEncodingContainer.swift; sourceTree = ""; };
OBJ_6 /* Package.swift */ = {isa = PBXFileReference; explicitFileType = sourcecode.swift; path = Package.swift; sourceTree = ""; };
- OBJ_60 /* AttributedEnumIntrinsicTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AttributedEnumIntrinsicTest.swift; sourceTree = ""; };
- OBJ_61 /* AttributedIntrinsicTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AttributedIntrinsicTest.swift; sourceTree = ""; };
OBJ_63 /* String+ExtensionsTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+ExtensionsTests.swift"; sourceTree = ""; };
OBJ_64 /* XMLElementTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XMLElementTests.swift; sourceTree = ""; };
OBJ_65 /* XMLHeaderTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XMLHeaderTests.swift; sourceTree = ""; };
OBJ_66 /* XMLKeyTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XMLKeyTests.swift; sourceTree = ""; };
OBJ_67 /* XMLStackParserTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XMLStackParserTests.swift; sourceTree = ""; };
OBJ_68 /* BenchmarkTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BenchmarkTests.swift; sourceTree = ""; };
- OBJ_69 /* BooksTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BooksTest.swift; sourceTree = ""; };
- OBJ_70 /* BorderTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BorderTest.swift; sourceTree = ""; };
OBJ_72 /* BoolBoxTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BoolBoxTests.swift; sourceTree = ""; };
OBJ_73 /* DataBoxTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataBoxTests.swift; sourceTree = ""; };
OBJ_74 /* DateBoxTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DateBoxTests.swift; sourceTree = ""; };
@@ -282,16 +293,9 @@
OBJ_82 /* UIntBoxTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIntBoxTests.swift; sourceTree = ""; };
OBJ_83 /* URLBoxTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = URLBoxTests.swift; sourceTree = ""; };
OBJ_84 /* UnkeyedBoxTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UnkeyedBoxTests.swift; sourceTree = ""; };
- OBJ_85 /* BreakfastTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BreakfastTest.swift; sourceTree = ""; };
- OBJ_86 /* CDCatalog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CDCatalog.swift; sourceTree = ""; };
- OBJ_87 /* CDTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CDTest.swift; sourceTree = ""; };
OBJ_88 /* ClassTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClassTests.swift; sourceTree = ""; };
- OBJ_89 /* CompositeChoiceTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompositeChoiceTests.swift; sourceTree = ""; };
OBJ_9 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
OBJ_90 /* DecodingContainerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DecodingContainerTests.swift; sourceTree = ""; };
- OBJ_91 /* DynamicNodeDecodingTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DynamicNodeDecodingTest.swift; sourceTree = ""; };
- OBJ_92 /* DynamicNodeEncodingTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DynamicNodeEncodingTest.swift; sourceTree = ""; };
- OBJ_93 /* ErrorContextTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ErrorContextTest.swift; sourceTree = ""; };
OBJ_94 /* KeyDecodingAndEncodingStrategyTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeyDecodingAndEncodingStrategyTests.swift; sourceTree = ""; };
OBJ_96 /* BoolTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BoolTests.swift; sourceTree = ""; };
OBJ_97 /* BoxTreeTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BoxTreeTests.swift; sourceTree = ""; };
@@ -320,6 +324,42 @@
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
+ D1A1838724842D710058E66D /* AdvancedFeatures */ = {
+ isa = PBXGroup;
+ children = (
+ D1A1838824842D710058E66D /* DynamicNodeDecodingTest.swift */,
+ D1A1838924842D710058E66D /* AttributedEnumIntrinsicTest.swift */,
+ D1A1838A24842D710058E66D /* NestedChoiceTests.swift */,
+ D1A1838B24842D710058E66D /* AttributedIntrinsicTest.swift */,
+ D1A1838C24842D710058E66D /* MixedChoiceAndNonChoiceTests.swift */,
+ D1A1838D24842D710058E66D /* SimpleChoiceTests.swift */,
+ D1A1838E24842D710058E66D /* NestedAttributeChoiceTests.swift */,
+ D1A1838F24842D710058E66D /* ErrorContextTest.swift */,
+ D1A1839024842D710058E66D /* DynamicNodeEncodingTest.swift */,
+ D1A1839124842D710058E66D /* CompositeChoiceTests.swift */,
+ D1A1839224842D710058E66D /* NestedChoiceArrayTest.swift */,
+ );
+ path = AdvancedFeatures;
+ sourceTree = "";
+ };
+ D1A1839324842D710058E66D /* EndToEnd */ = {
+ isa = PBXGroup;
+ children = (
+ D1A1839424842D710058E66D /* CDCatalog.swift */,
+ D1A1839524842D710058E66D /* BooksTest.swift */,
+ D1A1839624842D710058E66D /* NoteTest.swift */,
+ D1A1839724842D710058E66D /* CDTest.swift */,
+ D1A1839824842D710058E66D /* RelationshipsTest.swift */,
+ D1A1839924842D710058E66D /* PlantTest.swift */,
+ D1A1839A24842D710058E66D /* BreakfastTest.swift */,
+ D1A1839B24842D710058E66D /* RJISample.swift */,
+ D1A1839C24842D710058E66D /* PlantCatalog.swift */,
+ D1A1839D24842D710058E66D /* RJITest.swift */,
+ D1A1839E24842D710058E66D /* BorderTest.swift */,
+ );
+ path = EndToEnd;
+ sourceTree = "";
+ };
OBJ_10 /* Auxiliaries */ = {
isa = PBXGroup;
children = (
@@ -440,43 +480,25 @@
OBJ_62 /* Auxiliary */,
OBJ_71 /* Box */,
OBJ_95 /* Minimal */,
- OBJ_60 /* AttributedEnumIntrinsicTest.swift */,
- OBJ_61 /* AttributedIntrinsicTest.swift */,
+ D1A1838724842D710058E66D /* AdvancedFeatures */,
+ D1A1839324842D710058E66D /* EndToEnd */,
+ D1A1838324842C920058E66D /* CDATATest.swift */,
+ D1A1838024842C7D0058E66D /* PrettyPrintTest.swift */,
OBJ_68 /* BenchmarkTests.swift */,
- OBJ_69 /* BooksTest.swift */,
- OBJ_70 /* BorderTest.swift */,
- OBJ_85 /* BreakfastTest.swift */,
- OBJ_86 /* CDCatalog.swift */,
- OBJ_87 /* CDTest.swift */,
OBJ_88 /* ClassTests.swift */,
4A062D4E2341924E009BCAC1 /* CombineTests.swift */,
- OBJ_89 /* CompositeChoiceTests.swift */,
OBJ_90 /* DecodingContainerTests.swift */,
- OBJ_91 /* DynamicNodeDecodingTest.swift */,
- OBJ_92 /* DynamicNodeEncodingTest.swift */,
B54555BB2343F5C1000D4128 /* EmptyArrayTest.swift */,
07E441B92340F14B00890F46 /* EmptyElementEmptyStringTests.swift */,
- OBJ_93 /* ErrorContextTest.swift */,
B5E67534238B4960006C8548 /* IntOrString.swift */,
OBJ_94 /* KeyDecodingAndEncodingStrategyTests.swift */,
- B5E67532238B47E5006C8548 /* MixedChoiceAndNonChoiceTests.swift */,
OBJ_113 /* MixedContainerTest.swift */,
OBJ_114 /* NamespaceTest.swift */,
- OBJ_115 /* NestedAttributeChoiceTests.swift */,
- B5EA3BB4230F235C00D8D69B /* NestedChoiceArrayTest.swift */,
- OBJ_116 /* NestedChoiceTests.swift */,
OBJ_117 /* NestingTests.swift */,
OBJ_118 /* NodeEncodingStrategyTests.swift */,
- OBJ_119 /* NoteTest.swift */,
- OBJ_120 /* PlantCatalog.swift */,
- OBJ_121 /* PlantTest.swift */,
D18FBFB72348FAE500FA4F65 /* QuoteDecodingTest.swift */,
- OBJ_124 /* RelationshipsTest.swift */,
- OBJ_122 /* RJISample.swift */,
- OBJ_123 /* RJITest.swift */,
B5F74471233F74E400BBDB15 /* RootLevelAttributeTest.swift */,
970FA9DB2422EFAE0023C1EC /* RootLevetExtraAttributesTests.swift */,
- OBJ_125 /* SimpleChoiceTests.swift */,
OBJ_126 /* SingleChildTests.swift */,
OBJ_127 /* SpacePreserveTest.swift */,
);
@@ -727,18 +749,19 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 0;
files = (
- OBJ_209 /* AttributedEnumIntrinsicTest.swift in Sources */,
- OBJ_210 /* AttributedIntrinsicTest.swift in Sources */,
OBJ_211 /* String+ExtensionsTests.swift in Sources */,
OBJ_212 /* XMLElementTests.swift in Sources */,
OBJ_213 /* XMLHeaderTests.swift in Sources */,
+ D1A1838624842C9E0058E66D /* CDATATest.swift in Sources */,
+ D1A183BD24842DE20058E66D /* PlantCatalog.swift in Sources */,
OBJ_214 /* XMLKeyTests.swift in Sources */,
+ D1A183C824842DE80058E66D /* DynamicNodeEncodingTest.swift in Sources */,
OBJ_215 /* XMLStackParserTests.swift in Sources */,
D18FBFB82348FAE500FA4F65 /* QuoteDecodingTest.swift in Sources */,
+ D1A183C624842DE80058E66D /* NestedAttributeChoiceTests.swift in Sources */,
OBJ_216 /* BenchmarkTests.swift in Sources */,
- OBJ_217 /* BooksTest.swift in Sources */,
+ D1A183CA24842DE80058E66D /* NestedChoiceArrayTest.swift in Sources */,
B54555BC2343F5C1000D4128 /* EmptyArrayTest.swift in Sources */,
- OBJ_218 /* BorderTest.swift in Sources */,
OBJ_219 /* BoolBoxTests.swift in Sources */,
OBJ_220 /* DataBoxTests.swift in Sources */,
OBJ_221 /* DateBoxTests.swift in Sources */,
@@ -746,29 +769,33 @@
OBJ_223 /* FloatBoxTests.swift in Sources */,
OBJ_224 /* IntBoxTests.swift in Sources */,
OBJ_225 /* KeyedBoxTests.swift in Sources */,
+ D1A183BB24842DE20058E66D /* BreakfastTest.swift in Sources */,
+ D1A183B624842DE20058E66D /* BooksTest.swift in Sources */,
+ D1A183B724842DE20058E66D /* NoteTest.swift in Sources */,
OBJ_226 /* NullBoxTests.swift in Sources */,
OBJ_227 /* SharedBoxTests.swift in Sources */,
+ D1A183BC24842DE20058E66D /* RJISample.swift in Sources */,
+ D1A183C924842DE80058E66D /* CompositeChoiceTests.swift in Sources */,
OBJ_228 /* StringBoxTests.swift in Sources */,
OBJ_229 /* UIntBoxTests.swift in Sources */,
- B5E67533238B47E5006C8548 /* MixedChoiceAndNonChoiceTests.swift in Sources */,
+ D1A183C724842DE80058E66D /* ErrorContextTest.swift in Sources */,
OBJ_230 /* URLBoxTests.swift in Sources */,
+ D1A183B524842DE10058E66D /* CDCatalog.swift in Sources */,
OBJ_231 /* UnkeyedBoxTests.swift in Sources */,
- OBJ_232 /* BreakfastTest.swift in Sources */,
- OBJ_233 /* CDCatalog.swift in Sources */,
- OBJ_234 /* CDTest.swift in Sources */,
+ D1A183C024842DE80058E66D /* DynamicNodeDecodingTest.swift in Sources */,
OBJ_235 /* ClassTests.swift in Sources */,
- OBJ_236 /* CompositeChoiceTests.swift in Sources */,
OBJ_237 /* DecodingContainerTests.swift in Sources */,
- OBJ_238 /* DynamicNodeDecodingTest.swift in Sources */,
- OBJ_239 /* DynamicNodeEncodingTest.swift in Sources */,
- OBJ_240 /* ErrorContextTest.swift in Sources */,
OBJ_241 /* KeyDecodingAndEncodingStrategyTests.swift in Sources */,
OBJ_242 /* BoolTests.swift in Sources */,
OBJ_243 /* BoxTreeTests.swift in Sources */,
B5F74472233F74E400BBDB15 /* RootLevelAttributeTest.swift in Sources */,
+ D1A183C124842DE80058E66D /* AttributedEnumIntrinsicTest.swift in Sources */,
OBJ_244 /* DataTests.swift in Sources */,
OBJ_245 /* DateTests.swift in Sources */,
OBJ_246 /* DecimalTests.swift in Sources */,
+ D1A183C224842DE80058E66D /* NestedChoiceTests.swift in Sources */,
+ D1A183B924842DE20058E66D /* RelationshipsTest.swift in Sources */,
+ D1A183C524842DE80058E66D /* SimpleChoiceTests.swift in Sources */,
OBJ_247 /* EmptyTests.swift in Sources */,
OBJ_248 /* FloatTests.swift in Sources */,
OBJ_249 /* IntTests.swift in Sources */,
@@ -776,29 +803,26 @@
OBJ_251 /* KeyedTests.swift in Sources */,
OBJ_252 /* NullTests.swift in Sources */,
OBJ_253 /* OptionalTests.swift in Sources */,
+ D1A183BE24842DE20058E66D /* RJITest.swift in Sources */,
07E441BA2340F14B00890F46 /* EmptyElementEmptyStringTests.swift in Sources */,
OBJ_254 /* StringTests.swift in Sources */,
- B5EA3BB6230F237800D8D69B /* NestedChoiceArrayTest.swift in Sources */,
OBJ_255 /* UIntTests.swift in Sources */,
+ D1A183C324842DE80058E66D /* AttributedIntrinsicTest.swift in Sources */,
+ D1A183C424842DE80058E66D /* MixedChoiceAndNonChoiceTests.swift in Sources */,
OBJ_256 /* URLTests.swift in Sources */,
OBJ_257 /* UnkeyedIntTests.swift in Sources */,
+ D1A183B824842DE20058E66D /* CDTest.swift in Sources */,
OBJ_258 /* UnkeyedTests.swift in Sources */,
OBJ_259 /* MixedContainerTest.swift in Sources */,
OBJ_260 /* NamespaceTest.swift in Sources */,
- OBJ_261 /* NestedAttributeChoiceTests.swift in Sources */,
- OBJ_262 /* NestedChoiceTests.swift in Sources */,
OBJ_263 /* NestingTests.swift in Sources */,
OBJ_264 /* NodeEncodingStrategyTests.swift in Sources */,
- OBJ_265 /* NoteTest.swift in Sources */,
- OBJ_266 /* PlantCatalog.swift in Sources */,
- OBJ_267 /* PlantTest.swift in Sources */,
- OBJ_268 /* RJISample.swift in Sources */,
+ D1A183BA24842DE20058E66D /* PlantTest.swift in Sources */,
+ D1A1838524842C980058E66D /* PrettyPrintTest.swift in Sources */,
B5E67535238B4960006C8548 /* IntOrString.swift in Sources */,
- OBJ_269 /* RJITest.swift in Sources */,
970FA9DC2422EFAE0023C1EC /* RootLevetExtraAttributesTests.swift in Sources */,
- OBJ_270 /* RelationshipsTest.swift in Sources */,
- OBJ_271 /* SimpleChoiceTests.swift in Sources */,
4A062D4F2341924E009BCAC1 /* CombineTests.swift in Sources */,
+ D1A183BF24842DE20058E66D /* BorderTest.swift in Sources */,
OBJ_272 /* SingleChildTests.swift in Sources */,
OBJ_273 /* SpacePreserveTest.swift in Sources */,
);
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index 8d0e730f..081e99c1 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -5,11 +5,6 @@ pr:
- master
jobs:
-- job: lint
- pool:
- vmImage: 'macos-latest'
- steps:
- - bash: ./lint.sh
- job: test_xcodebuild_10_0
pool:
vmImage: 'macOS-10.14'
diff --git a/lint.sh b/lint.sh
deleted file mode 100755
index 8681785b..00000000
--- a/lint.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/bash
-
-set -e
-set -o pipefail
-
-brew update
-brew install swiftformat
-
-swiftformat --lint --verbose .