MCPcopy Create free account
hub / github.com/colmap/colmap / TestModel

Function TestModel

src/colmap/sensor/models_test.cc:183–281  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

181
182template <typename CameraModel>
183void TestModel(const std::vector<double>& params) {
184 EXPECT_TRUE(CameraModelVerifyParams(CameraModel::model_id, params));
185
186 const std::vector<double> default_params =
187 CameraModelInitializeParams(CameraModel::model_id, 100, 100, 100);
188 EXPECT_TRUE(CameraModelVerifyParams(CameraModel::model_id, default_params));
189
190 EXPECT_EQ(CameraModelParamsInfo(CameraModel::model_id),
191 CameraModel::params_info);
192 EXPECT_EQ(std::vector<size_t>(
193 CameraModelFocalLengthIdxs(CameraModel::model_id).begin(),
194 CameraModelFocalLengthIdxs(CameraModel::model_id).end()),
195 std::vector<size_t>(CameraModel::focal_length_idxs.begin(),
196 CameraModel::focal_length_idxs.end()));
197 EXPECT_EQ(std::vector<size_t>(
198 CameraModelPrincipalPointIdxs(CameraModel::model_id).begin(),
199 CameraModelPrincipalPointIdxs(CameraModel::model_id).end()),
200 std::vector<size_t>(CameraModel::principal_point_idxs.begin(),
201 CameraModel::principal_point_idxs.end()));
202 EXPECT_EQ(std::vector<size_t>(
203 CameraModelExtraParamsIdxs(CameraModel::model_id).begin(),
204 CameraModelExtraParamsIdxs(CameraModel::model_id).end()),
205 std::vector<size_t>(CameraModel::extra_params_idxs.begin(),
206 CameraModel::extra_params_idxs.end()));
207 EXPECT_TRUE(CameraModelMetaDataParamsIdxs(CameraModel::model_id).empty());
208 EXPECT_EQ(CameraModelNumParams(CameraModel::model_id),
209 CameraModel::num_params);
210
211 EXPECT_FALSE(CameraModelHasBogusParams(
212 CameraModel::model_id, default_params, 100, 100, 0.1, 2.0, 1.0));
213 EXPECT_TRUE(CameraModelHasBogusParams(
214 CameraModel::model_id, default_params, 100, 100, 0.1, 0.5, 1.0));
215 EXPECT_TRUE(CameraModelHasBogusParams(
216 CameraModel::model_id, default_params, 100, 100, 1.5, 2.0, 1.0));
217 if (CameraModel::extra_params_idxs.size() > 0) {
218 EXPECT_TRUE(CameraModelHasBogusParams(
219 CameraModel::model_id, default_params, 100, 100, 0.1, 2.0, -0.1));
220 }
221
222 EXPECT_EQ(CameraModelCamFromImgThreshold(CameraModel::model_id, params, 0),
223 0);
224 EXPECT_GT(CameraModelCamFromImgThreshold(CameraModel::model_id, params, 1),
225 0);
226 EXPECT_EQ(
227 CameraModelCamFromImgThreshold(CameraModel::model_id, default_params, 1),
228 1.0 / 100.0);
229
230 EXPECT_TRUE(ExistsCameraModelWithName(CameraModel::model_name));
231 EXPECT_FALSE(ExistsCameraModelWithName(CameraModel::model_name + "FOO"));
232
233 EXPECT_TRUE(ExistsCameraModelWithId(CameraModel::model_id));
234 // NOLINTNEXTLINE(clang-analyzer-optin.core.EnumCastOutOfRange)
235 EXPECT_FALSE(ExistsCameraModelWithId(static_cast<CameraModelId>(123456789)));
236
237 EXPECT_EQ(CameraModelNameToId(CameraModelIdToName(CameraModel::model_id)),
238 CameraModel::model_id);
239 EXPECT_EQ(CameraModelIdToName(CameraModelNameToId(CameraModel::model_name)),
240 CameraModel::model_name);

Callers

nothing calls this directly

Tested by

no test coverage detected