     }
 }
 
+@objc(Attributes)
+class AttributesObject: NSObject {
+    
+    @objc var string: String? = nil
+    @objc var data: Data? = nil
+    @objc var date: Date? = nil
+    @objc var uuid: UUID? = nil
+    @objc var bool: Bool = false
+    @objc var int: Int = 0
+    @objc var uint: UInt = 0
+    @objc var uint8: UInt8 = 0
+    @objc var uint16: UInt16 = 0
+    @objc var uint32: UInt32 = 0
+    @objc var uint64: UInt64 = 0
+    @objc var int8: Int8 = 0
+    @objc var int16: Int16 = 0
+    @objc var int32: Int32 = 0
+    @objc var int64: Int64 = 0
+    @objc var float: Float = 0
+    @objc var double: Double = 0
+    @objc var numbers: [Int] = []
+    @objc var strings: [String] = []
+    
+    override init() {
+        super.init()
+    }
+}
+
 #endif

    func testPredicate1() {
        
        let predicate: Predicate = #keyPath(PersonObject.id) > Int64(0)
            && #keyPath(PersonObject.id) != Int64(99)
            && (#keyPath(PersonObject.name)).compare(.beginsWith, .value(.string("C")))
            && (#keyPath(PersonObject.name)).compare(.contains, [.diacriticInsensitive, .caseInsensitive], .value(.string("COLE")))
        

        print(predicate)
        print(converted)
        
        XCTAssertEqual(predicate.description, converted.description)
        XCTAssert(converted.evaluate(with: PersonObject(id: 1, name: "Coléman")))
    }
    
