         XCTAssert(try Value.int64(0xFF).compare(.int64(0x01), operator: .greaterThan))
         XCTAssert(try Value.int64(0xFF).compare(.int64(0x01), operator: .greaterThanOrEqualTo))
         XCTAssert(try Value.int64(0x11).compare(.int64(0x01), operator: .greaterThanOrEqualTo))
+        
+        XCTAssert(try Value.float(1.23).compare(.float(1.23), operator: .equalTo))
+        XCTAssert(try Value.float(1.23).compare(.float(0.12), operator: .notEqualTo))
+        XCTAssert(try Value.float(0.12).compare(.float(1.23), operator: .notEqualTo))
+        XCTAssert(try Value.float(0.12).compare(.float(1.23), operator: .lessThan))
+        XCTAssert(try Value.float(0.12).compare(.float(1.23), operator: .lessThanOrEqualTo))
+        XCTAssert(try Value.float(0.12).compare(.float(0.12), operator: .lessThanOrEqualTo))
+        XCTAssert(try Value.float(1.23).compare(.float(0.12), operator: .greaterThan))
+        XCTAssert(try Value.float(1.23).compare(.float(0.12), operator: .greaterThanOrEqualTo))
+        XCTAssert(try Value.float(1.23).compare(.float(1.23), operator: .greaterThanOrEqualTo))
+        
+        XCTAssert(try Value.double(1.23).compare(.double(1.23), operator: .equalTo))
+        XCTAssert(try Value.double(1.23).compare(.double(0.12), operator: .notEqualTo))
+        XCTAssert(try Value.double(0.12).compare(.double(1.23), operator: .notEqualTo))
+        XCTAssert(try Value.double(0.12).compare(.double(1.23), operator: .lessThan))
+        XCTAssert(try Value.double(0.12).compare(.double(1.23), operator: .lessThanOrEqualTo))
+        XCTAssert(try Value.double(0.12).compare(.double(0.12), operator: .lessThanOrEqualTo))
+        XCTAssert(try Value.double(1.23).compare(.double(0.12), operator: .greaterThan))
+        XCTAssert(try Value.double(1.23).compare(.double(0.12), operator: .greaterThanOrEqualTo))
+        XCTAssert(try Value.double(1.23).compare(.double(1.23), operator: .greaterThanOrEqualTo))
     }
 }

        XCTAssertThrowsError(try Value.bool(true).compare(.string("test"), operator: .in))
        XCTAssertThrowsError(try Value.uint8(0x01).compare(.data(Data([0x01])), operator: .contains))
        XCTAssertThrowsError(try Value.data(Data([0x01])).compare(.uint8(0x01), operator: .in))
    }
    
    func testNull() {

    
    func testNumbers() {
        
        //XCTAssert(try Value.float(1.2).compare(.double(1.20), operator: .equalTo))
        XCTAssert(try Value.float(0.1).compare(.double(1.123), operator: .notEqualTo))
        XCTAssert(try Value.uint8(0x01).compare(.bool(true), operator: .equalTo))
        XCTAssert(try Value.uint8(0x00).compare(.bool(true), operator: .notEqualTo))
        XCTAssert(try Value.bool(true).compare(.uint8(0x01), operator: .equalTo))
