public void testQueryByFloatProperty()

in hugegraph-test/src/main/java/org/apache/hugegraph/core/VertexCoreTest.java [3991:4096]


    public void testQueryByFloatProperty() {
        HugeGraph graph = graph();

        SchemaManager schema = graph.schema();
        schema.propertyKey("float").asFloat().create();
        schema.vertexLabel("number").primaryKeys("id")
              .properties("id", "float").create();
        schema.indexLabel("numberByFloat").range()
              .onV("number").by("float").create();

        final float secondBiggest = 0x1.fffffdP+127f;
        final float secondSmallest = 0x0.000003P-126f;

        graph().addVertex(T.label, "number", "id", 1, "float", 7);
        graph().addVertex(T.label, "number", "id", 2, "float", 3.14f);
        graph().addVertex(T.label, "number", "id", 3, "float", 3.141592f);
        graph().addVertex(T.label, "number", "id", 4, "float", 1234.567d);
        graph().addVertex(T.label, "number", "id", 5,
                          "float", Float.MAX_VALUE);
        graph().addVertex(T.label, "number", "id", 6,
                          "float", -Float.MAX_VALUE);
        graph().addVertex(T.label, "number", "id", 7,
                          "float", Float.MIN_VALUE);
        graph().addVertex(T.label, "number", "id", 8,
                          "float", -Float.MIN_VALUE);
        graph().addVertex(T.label, "number", "id", 9,
                          "float", secondBiggest);
        graph().addVertex(T.label, "number", "id", 10,
                          "float", -secondBiggest);
        graph().addVertex(T.label, "number", "id", 11,
                          "float", secondSmallest);
        graph().addVertex(T.label, "number", "id", 12,
                          "float", -secondSmallest);

        this.mayCommitTx();

        List<Vertex> vertices = graph.traversal().V().hasLabel("number")
                                     .has("float", 7).toList();
        Assert.assertEquals(1, vertices.size());
        assertContains(vertices, T.label, "number", "id", 1, "float", 7f);

        vertices = graph.traversal().V().hasLabel("number")
                        .has("float", 3.14f).toList();
        Assert.assertEquals(1, vertices.size());
        assertContains(vertices, T.label, "number", "id", 2, "float", 3.14f);

        vertices = graph.traversal().V().hasLabel("number")
                        .has("float", 3.141592f).toList();
        Assert.assertEquals(1, vertices.size());
        assertContains(vertices, T.label, "number", "id", 3,
                       "float", 3.141592f);

        vertices = graph.traversal().V().hasLabel("number")
                        .has("float", 1234.567d).toList();
        Assert.assertEquals(1, vertices.size());
        assertContains(vertices, T.label, "number", "id", 4,
                       "float", 1234.567f);

        vertices = graph.traversal().V().hasLabel("number")
                        .has("float", Float.MAX_VALUE).toList();
        Assert.assertEquals(1, vertices.size());
        assertContains(vertices, T.label, "number", "id", 5,
                       "float", Float.MAX_VALUE);

        vertices = graph.traversal().V().hasLabel("number")
                        .has("float", -Float.MAX_VALUE).toList();
        Assert.assertEquals(1, vertices.size());
        assertContains(vertices, T.label, "number", "id", 6,
                       "float", -Float.MAX_VALUE);

        vertices = graph.traversal().V().hasLabel("number")
                        .has("float", Float.MIN_VALUE).toList();
        Assert.assertEquals(1, vertices.size());
        assertContains(vertices, T.label, "number", "id", 7,
                       "float", Float.MIN_VALUE);

        vertices = graph.traversal().V().hasLabel("number")
                        .has("float", -Float.MIN_VALUE).toList();
        Assert.assertEquals(1, vertices.size());
        assertContains(vertices, T.label, "number", "id", 8,
                       "float", -Float.MIN_VALUE);

        vertices = graph.traversal().V().hasLabel("number")
                        .has("float", secondBiggest).toList();
        Assert.assertEquals(1, vertices.size());
        assertContains(vertices, T.label, "number", "id", 9,
                       "float", secondBiggest);

        vertices = graph.traversal().V().hasLabel("number")
                        .has("float", -secondBiggest).toList();
        Assert.assertEquals(1, vertices.size());
        assertContains(vertices, T.label, "number", "id", 10,
                       "float", -secondBiggest);

        vertices = graph.traversal().V().hasLabel("number")
                        .has("float", secondSmallest).toList();
        Assert.assertEquals(1, vertices.size());
        assertContains(vertices, T.label, "number", "id", 11,
                       "float", secondSmallest);

        vertices = graph.traversal().V().hasLabel("number")
                        .has("float", -secondSmallest).toList();
        Assert.assertEquals(1, vertices.size());
        assertContains(vertices, T.label, "number", "id", 12,
                       "float", -secondSmallest);
    }