Skip to content

Commit 96ebeb4

Browse files
committed
[test/Feature] more extensive testing
1 parent 4b21ac1 commit 96ebeb4

File tree

2 files changed

+35
-4
lines changed

2 files changed

+35
-4
lines changed

Diff for: test/BaseTestFeature.cpp

+34-3
Original file line numberDiff line numberDiff line change
@@ -89,22 +89,53 @@ void BaseTestFeature::testDataArrayFeature() {
8989
CPPUNIT_ASSERT_THROW(f.data(a), UninitializedEntity);
9090

9191
Feature rp = tag.createFeature(data_array, nix::LinkType::Tagged);
92+
tag.hasFeature(rp.id());
93+
tag.getFeature(rp.id());
94+
Feature ft2 = tag.getFeature(data_array.name());
95+
CPPUNIT_ASSERT(ft2 && ft2.dataArray().name() == data_array.name());
96+
CPPUNIT_ASSERT(ft2 && ft2.id() == rp.id());
97+
9298
DataArray da_2 = block.createDataArray("array2", "Test",
9399
DataType::Double, nix::NDSize({ 0 }));
100+
CPPUNIT_ASSERT(rp.dataArray().id() == data_array.id());
94101
CPPUNIT_ASSERT(rp.data().id() == data_array.id());
95102
rp.data(da_2);
96-
CPPUNIT_ASSERT(rp.data().id() == da_2.id());
103+
CPPUNIT_ASSERT(rp.dataArray().id() == da_2.id());
104+
CPPUNIT_ASSERT_THROW(rp.dataFrame(), std::runtime_error);
97105
block.deleteDataArray(da_2.id());
98106
// make sure link is gone with deleted data array
99-
CPPUNIT_ASSERT(rp.data() == nix::none);
107+
CPPUNIT_ASSERT(rp.dataArray() == nix::none);
100108
CPPUNIT_ASSERT_THROW(rp.data(""), EmptyString);
101109
CPPUNIT_ASSERT_THROW(rp.data("worng_id"), std::runtime_error);
102110
tag.deleteFeature(rp.id());
103111
}
104112

105113

106114
void BaseTestFeature::testDataFrameFeature() {
107-
Feature ft = tag.createFeature(data_frame, nix::LinkType::Indexed);
115+
DataFrame df;
116+
Feature ft;
117+
CPPUNIT_ASSERT_THROW(tag.createFeature(df, nix::LinkType::Tagged), UninitializedEntity);
118+
CPPUNIT_ASSERT_THROW(ft.data(df), UninitializedEntity);
119+
std::vector<nix::Column> cols = {
120+
{"bool", "", nix::DataType::Bool},
121+
{"int32", "V", nix::DataType::Int32}};
122+
df = block.createDataFrame("df", "test_df", cols);
123+
ft = tag.createFeature(df, nix::LinkType::Untagged);
124+
ft.data(df.name());
125+
block.deleteDataFrame(df);
126+
CPPUNIT_ASSERT_THROW(ft.data(df), UninitializedEntity);
127+
CPPUNIT_ASSERT(ft.dataFrame() == nix::none);
128+
CPPUNIT_ASSERT_THROW(ft.data(""), EmptyString);
129+
CPPUNIT_ASSERT_THROW(ft.data("worng_id"), std::runtime_error);
130+
CPPUNIT_ASSERT_THROW(ft.dataArray(), std::runtime_error);
131+
CPPUNIT_ASSERT_THROW(ft.data(), std::runtime_error);
132+
133+
ft = tag.createFeature(data_frame, nix::LinkType::Indexed);
134+
135+
DataFrame df2 = ft.dataFrame();
136+
Feature ft2 = tag.getFeature(data_frame.name());
137+
CPPUNIT_ASSERT(ft2 && ft2.dataFrame().name() == data_frame.name());
138+
CPPUNIT_ASSERT(ft2 && ft2.id() == ft.id());
108139
CPPUNIT_ASSERT(ft.targetType() == nix::TargetType::DataFrame && ft.linkType() == nix::LinkType::Indexed);
109140
tag.deleteFeature(ft.id());
110141

Diff for: test/hdf5/TestFeatureHDF5.hpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ class TestFeatureHDF5 : public BaseTestFeature {
3838
{"uint64", "A", nix::DataType::UInt64},
3939
{"string", "", nix::DataType::String},
4040
{"double", "mV", nix::DataType::Double}};
41-
data_frame = block.createDataFrame("isd", "isd", cols);
41+
data_frame = block.createDataFrame("test dataframe", "nix:test", cols);
4242

4343
tag = block.createTag("featureTest", "Test", {0.0, 2.0, 3.4});
4444
}

0 commit comments

Comments
 (0)