@@ -89,22 +89,53 @@ void BaseTestFeature::testDataArrayFeature() {
89
89
CPPUNIT_ASSERT_THROW (f.data (a), UninitializedEntity);
90
90
91
91
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
+
92
98
DataArray da_2 = block.createDataArray (" array2" , " Test" ,
93
99
DataType::Double, nix::NDSize ({ 0 }));
100
+ CPPUNIT_ASSERT (rp.dataArray ().id () == data_array.id ());
94
101
CPPUNIT_ASSERT (rp.data ().id () == data_array.id ());
95
102
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);
97
105
block.deleteDataArray (da_2.id ());
98
106
// make sure link is gone with deleted data array
99
- CPPUNIT_ASSERT (rp.data () == nix::none);
107
+ CPPUNIT_ASSERT (rp.dataArray () == nix::none);
100
108
CPPUNIT_ASSERT_THROW (rp.data (" " ), EmptyString);
101
109
CPPUNIT_ASSERT_THROW (rp.data (" worng_id" ), std::runtime_error);
102
110
tag.deleteFeature (rp.id ());
103
111
}
104
112
105
113
106
114
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 ());
108
139
CPPUNIT_ASSERT (ft.targetType () == nix::TargetType::DataFrame && ft.linkType () == nix::LinkType::Indexed);
109
140
tag.deleteFeature (ft.id ());
110
141
0 commit comments