 import JSONC
 
 class JSONTests: XCTestCase {
+    
+    lazy var allTests: [(String, () -> ())] = [
+        
+        ("testJSONEncodable", self.testJSONEncodable),
+        ("testJSONParse", self.testJSONParse),
+        ("testJSONWriting", self.testJSONWriting)
+    ]
         
     func testJSONEncodable() {
         


    func testJSONParse() {
        
        func parseJSON(json: Any, _ jsonString: String) {
            
            #if os(OSX) || os(iOS)
                

                
            #endif
            
            guard let parsedJSONValue = JSON.Value(string: jsonString, JSONC.self)
                else { XCTFail("JSON parsing failed"); return }
            
            print("Parsed JSON: \(jsonValue)\n")
            
            XCTAssert(jsonValue == parsedJSONValue, "\(jsonValue) == \(parsedJSONValue)")
        }
        
        parseJSON(.Object(["Key": .Null]), "{ \"Key\" : null }")
        
        parseJSON(.Object(["Key": .String("Value")]), "{ \"Key\" : \"Value\" }")
        
        parseJSON(.Object(["Key": .Number(.Boolean(true))]), "{ \"Key\" : true }")
        
        parseJSON(.Object(["Key": .Number(.Integer(10))]), "{ \"Key\" : 10 }")
        
        parseJSON(.Object(["Key": .Number(.Double(1.01))]), "{ \"Key\" : 1.01 }")
        
        parseJSON(.Object(["Key": .Object(["Key2": .String("Value")])]), "{ \"Key\" : { \"Key2\" : \"Value\" } }")
        
        parseJSON(.Array([
            .Number(.Boolean(true)),
            .Number(.Boolean(false)),
            .Number(.Integer(10)),
            .Number(.Double(10.1)),
            .String("string"),
            .Array([.String("subarrayValue1"), .String("subarrayValue2")]),
                .Object(["subobjectKey": .String("subobjectValue")])
                ]), "[true, false, 10, 10.1, \"string\", [\"subarrayValue1\", \"subarrayValue2\"], {\"subobjectKey\" : \"subobjectValue\"} ]")
    }
    
    func testJSONWriting() {
