Skip to content

Commit f4c676c

Browse files
jonathan-r-thorpelo-simon
andauthoredJul 26, 2024··
Fix validation of MS-05 NcFloat32 values. (#400)
* Fix checking of NcFloat32 values. Added regression test --------- Co-authored-by: Simon Lo <simon.lo@sony.com>
1 parent 3105b86 commit f4c676c

File tree

2 files changed

+5
-3
lines changed

2 files changed

+5
-3
lines changed
 

‎Development/nmos/control_protocol_utils.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ namespace nmos
185185
};
186186
auto is_float32 = [](double value)
187187
{
188-
return value >= (std::numeric_limits<float_t>::min)()
188+
return value >= (std::numeric_limits<float_t>::lowest)()
189189
&& value <= (std::numeric_limits<float_t>::max)();
190190
};
191191

‎Development/nmos/test/control_protocol_test.cpp

+4-2
Original file line numberDiff line numberDiff line change
@@ -883,10 +883,12 @@ BST_TEST_CASE(testConstraints)
883883
BST_REQUIRE_NO_THROW(nmos::details::constraints_validation(std::numeric_limits<uint64_t>::max(), value::null(), value::null(), no_constraints_uint64_constraints_validation_params));
884884
// float32 datatype constraints validation
885885
const nmos::details::datatype_constraints_validation_parameters no_constraints_float32_constraints_validation_params{ no_constraints_float32_datatype, nmos::make_get_control_protocol_datatype_descriptor_handler(control_protocol_state) };
886-
BST_REQUIRE_THROW(nmos::details::constraints_validation(std::numeric_limits<double>::min(), value::null(), value::null(), no_constraints_float32_constraints_validation_params), nmos::control_protocol_exception);
886+
BST_REQUIRE_THROW(nmos::details::constraints_validation(std::numeric_limits<double>::lowest(), value::null(), value::null(), no_constraints_float32_constraints_validation_params), nmos::control_protocol_exception);
887887
BST_REQUIRE_THROW(nmos::details::constraints_validation(std::numeric_limits<double>::max(), value::null(), value::null(), no_constraints_float32_constraints_validation_params), nmos::control_protocol_exception);
888-
BST_REQUIRE_NO_THROW(nmos::details::constraints_validation(std::numeric_limits<float_t>::min(), value::null(), value::null(), no_constraints_float32_constraints_validation_params));
888+
BST_REQUIRE_NO_THROW(nmos::details::constraints_validation(std::numeric_limits<float_t>::lowest(), value::null(), value::null(), no_constraints_float32_constraints_validation_params));
889889
BST_REQUIRE_NO_THROW(nmos::details::constraints_validation(std::numeric_limits<float_t>::max(), value::null(), value::null(), no_constraints_float32_constraints_validation_params));
890+
BST_REQUIRE_NO_THROW(nmos::details::constraints_validation(0.0, value::null(), value::null(), no_constraints_float32_constraints_validation_params));
891+
BST_REQUIRE_NO_THROW(nmos::details::constraints_validation(-1000.0, value::null(), value::null(), no_constraints_float32_constraints_validation_params));
890892
// float64 datatype constraints validation
891893
const nmos::details::datatype_constraints_validation_parameters no_constraints_float64_constraints_validation_params{ no_constraints_float64_datatype, nmos::make_get_control_protocol_datatype_descriptor_handler(control_protocol_state) };
892894
BST_REQUIRE_THROW(nmos::details::constraints_validation(1000, value::null(), value::null(), no_constraints_float64_constraints_validation_params), nmos::control_protocol_exception);

0 commit comments

Comments
 (0)
Please sign in to comment.