Skip to content

Commit

Permalink
fix test coverage
Browse files Browse the repository at this point in the history
  • Loading branch information
andyfengHKU committed Mar 30, 2023
1 parent 996b64e commit 65b6c77
Show file tree
Hide file tree
Showing 5 changed files with 56 additions and 9 deletions.
8 changes: 4 additions & 4 deletions src/common/types/value.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,10 @@ Value::Value(int64_t val_) : dataType{INT64}, isNull_{false} {
val.int64Val = val_;
}

Value::Value(float_t val_) : dataType{FLOAT}, isNull_{false} {
val.floatVal = val_;
}

Value::Value(double val_) : dataType{DOUBLE}, isNull_{false} {
val.doubleVal = val_;
}
Expand Down Expand Up @@ -118,10 +122,6 @@ Value::Value(DataType dataType, std::vector<std::unique_ptr<Value>> vals)
listVal = std::move(vals);
}

Value::Value(float_t val_) : dataType{FLOAT}, isNull_{false} {
val.floatVal = val_;
}

Value::Value(std::unique_ptr<NodeVal> val_) : dataType{NODE}, isNull_{false} {
nodeVal = std::move(val_);
}
Expand Down
2 changes: 1 addition & 1 deletion src/function/vector_cast_operations.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@ CastToFloatVectorOperation::getDefinitions() {
CAST_TO_FLOAT_FUNC_NAME, INT64, FLOAT));
// down cast
result.push_back(bindVectorOperation<double_t, float_t, operation::CastToFloat>(
CAST_TO_FLOAT_FUNC_NAME, INT16, FLOAT));
CAST_TO_FLOAT_FUNC_NAME, DOUBLE, FLOAT));
return result;
}

Expand Down
9 changes: 9 additions & 0 deletions src/include/common/types/value.h
Original file line number Diff line number Diff line change
Expand Up @@ -383,6 +383,15 @@ inline int64_t Value::getValue() const {
return val.int64Val;
}

/**
* @return float value.
*/
KUZU_API template<>
inline float Value::getValue() const {
assert(dataType.getTypeID() == FLOAT);
return val.floatVal;
}

/**
* @return double value.
*/
Expand Down
21 changes: 17 additions & 4 deletions test/runner/e2e_update_node_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@ class TinySnbUpdateTest : public DBTest {
}

std::string getStringExceedsOverflow() {
std::string veryLongList = "[";
for (int i = 0; i < 599; ++i) {
std::string veryLongList = "'[";
for (int i = 0; i < 5990; ++i) {
veryLongList += std::to_string(i);
veryLongList += ",";
}
veryLongList += "599]";
veryLongList += "599]'";
return veryLongList;
}
};
Expand All @@ -37,7 +37,13 @@ TEST_F(TinySnbUpdateTest, SetNodeInt32PropTest) {
TEST_F(TinySnbUpdateTest, SetNodeDoublePropTest) {
conn->query("MATCH (a:person) WHERE a.ID=0 SET a.eyeSight=1.0");
auto result = conn->query("MATCH (a:person) WHERE a.ID=0 RETURN a.eyeSight");
ASSERT_EQ(result->getNext()->getValue(0)->getValue<double>(), 1.0);
ASSERT_EQ(result->getNext()->getValue(0)->getValue<double_t>(), 1.0);
}

TEST_F(TinySnbUpdateTest, SetNodeFloatPropTest) {
conn->query("MATCH (a:person) WHERE a.ID=0 SET a.height=12");
auto result = conn->query("MATCH (a:person) WHERE a.ID=0 RETURN a.height");
ASSERT_EQ(result->getNext()->getValue(0)->getValue<float_t>(), 12);
}

TEST_F(TinySnbUpdateTest, SetNodeBoolPropTest) {
Expand Down Expand Up @@ -174,6 +180,13 @@ TEST_F(TinySnbUpdateTest, SetIndexNestedLoopJoinTest) {
ASSERT_EQ(TestHelper::convertResultToString(*result), groundTruth);
}

TEST_F(TinySnbUpdateTest, SetRelInt16PropTest) {
conn->query("MATCH (a:person)-[e:studyAt]->(b:organisation) WHERE a.ID = 0 SET e.length=99");
auto result = conn->query("MATCH (a:person)-[e:studyAt]->(b:organisation) RETURN e.length");
auto groundTruth = std::vector<std::string>{"22", "55", "99"};
ASSERT_EQ(TestHelper::convertResultToString(*result), groundTruth);
}

// Create clause test

TEST_F(TinySnbUpdateTest, InsertNodeWithBoolIntDoubleTest) {
Expand Down
25 changes: 25 additions & 0 deletions test/test_files/tinysnb/function/cast.test
Original file line number Diff line number Diff line change
@@ -1,3 +1,28 @@
-NAME CastFromINT16
-QUERY MATCH (p:person)-[e:studyAt]->(o:organisation) WHERE p.ID=0 RETURN to_int32(e.length), to_int64(e.length), to_float(e.length), to_double(e.length)
---- 1
5|5|5.000000|5.000000

-NAME CastFromINT32
-QUERY MATCH (m:movies) WHERE m.name='Roma' RETURN to_int16(m.length), to_int64(m.length), to_float(m.length), to_double(m.length)
---- 1
298|298|298.000000|298.000000

-NAME CastFromINT64
-QUERY MATCH (p:person) WHERE p.ID=0 RETURN to_int16(p.gender), to_int32(p.gender), to_float(p.gender), to_double(p.gender)
---- 1
1|1|1.000000|1.000000

-NAME CastFromFLOAT
-QUERY MATCH (p:person) WHERE p.ID=0 RETURN to_int16(p.height), to_int32(p.height), to_int64(p.height), to_double(p.height)
---- 1
1|1|1|1.731000

-NAME CastFromDOUBLE
-QUERY MATCH (p:person) WHERE p.ID=0 RETURN to_int16(p.eyeSight), to_int32(p.eyeSight), to_int64(p.eyeSight), to_float(p.eyeSight)
---- 1
5|5|5|5.000000

-NAME CastBoolToString
-QUERY MATCH (p:person) RETURN string(p.isStudent)
---- 8
Expand Down

0 comments on commit 65b6c77

Please sign in to comment.