@@ -149,9 +149,9 @@ template <typename T, typename C_TYPE = typename T::c_type>
149149void AssertJSONScalar (const std::shared_ptr<DataType>& type, const std::string& json,
150150 const bool is_valid, const C_TYPE value) {
151151 SCOPED_TRACE (json);
152- std::shared_ptr<Scalar> actual, expected;
152+ std::shared_ptr<Scalar> expected;
153153
154- ASSERT_OK ( ScalarFromJSONString (type, json, &actual ));
154+ ASSERT_OK_AND_ASSIGN ( auto actual, ScalarFromJSONString (type, json));
155155 if (is_valid) {
156156 ASSERT_OK_AND_ASSIGN (expected, MakeScalar (type, value));
157157 } else {
@@ -1471,35 +1471,33 @@ TEST(TestDictArrayFromJSON, Basics) {
14711471
14721472TEST (TestDictArrayFromJSON, Errors) {
14731473 auto type = dictionary (int32 (), utf8 ());
1474- std::shared_ptr<Array> array;
14751474
1476- ASSERT_RAISES (Invalid, DictArrayFromJSONString (type, " [ \" not a valid index \" ] " ,
1477- " [\"\" ]" , &array ));
1478- ASSERT_RAISES (Invalid, DictArrayFromJSONString (type, " [0, 1]" , " [1] " ,
1479- &array )); // dict value isn't string
1475+ ASSERT_RAISES (Invalid,
1476+ DictArrayFromJSONString (type, " [ \" not a valid index \" ] " , " [\"\" ]" ));
1477+ ASSERT_RAISES (Invalid, DictArrayFromJSONString (type, " [0, 1]" ,
1478+ " [1] " )); // dict value isn't string
14801479}
14811480
14821481TEST (TestChunkedArrayFromJSON, Basics) {
14831482 auto type = int32 ();
1484- std::shared_ptr<ChunkedArray> chunked_array;
1485- ASSERT_OK (ChunkedArrayFromJSONString (type, {}, &chunked_array));
1483+ ASSERT_OK_AND_ASSIGN (auto chunked_array, ChunkedArrayFromJSONString (type, {}));
14861484 ASSERT_OK (chunked_array->ValidateFull ());
14871485 ASSERT_EQ (chunked_array->num_chunks (), 0 );
14881486 AssertTypeEqual (type, chunked_array->type ());
14891487
1490- ASSERT_OK (ChunkedArrayFromJSONString (type, {" [1, 2]" , " [3, null, 4]" }, &chunked_array));
1491- ASSERT_OK (chunked_array->ValidateFull ());
1492- ASSERT_EQ (chunked_array->num_chunks (), 2 );
1488+ ASSERT_OK_AND_ASSIGN (auto chunked_array_two,
1489+ ChunkedArrayFromJSONString (type, {" [1, 2]" , " [3, null, 4]" }));
1490+ ASSERT_OK (chunked_array_two->ValidateFull ());
1491+ ASSERT_EQ (chunked_array_two->num_chunks (), 2 );
14931492 std::shared_ptr<Array> expected_chunk;
14941493 ASSERT_OK_AND_ASSIGN (expected_chunk, ArrayFromJSONString (type, " [1, 2]" ));
1495- AssertArraysEqual (*expected_chunk, *chunked_array ->chunk (0 ), /* verbose=*/ true );
1494+ AssertArraysEqual (*expected_chunk, *chunked_array_two ->chunk (0 ), /* verbose=*/ true );
14961495 ASSERT_OK_AND_ASSIGN (expected_chunk, ArrayFromJSONString (type, " [3, null, 4]" ));
1497- AssertArraysEqual (*expected_chunk, *chunked_array ->chunk (1 ), /* verbose=*/ true );
1496+ AssertArraysEqual (*expected_chunk, *chunked_array_two ->chunk (1 ), /* verbose=*/ true );
14981497}
14991498
15001499TEST (TestScalarFromJSON, Basics) {
15011500 // Sanity check for common types (not exhaustive)
1502- std::shared_ptr<Scalar> scalar;
15031501 AssertJSONScalar<Int64Type>(int64 (), " 4" , true , 4 );
15041502 AssertJSONScalar<Int64Type>(int64 (), " null" , false , 0 );
15051503 AssertJSONScalar<StringType, std::shared_ptr<Buffer>>(utf8 (), R"( "")" , true ,
@@ -1516,25 +1514,22 @@ TEST(TestScalarFromJSON, Basics) {
15161514 AssertJSONScalar<BooleanType, bool >(boolean (), " 1" , true , true );
15171515 AssertJSONScalar<DoubleType>(float64 (), " 1.0" , true , 1.0 );
15181516 AssertJSONScalar<DoubleType>(float64 (), " -0.0" , true , -0.0 );
1519- ASSERT_OK ( ScalarFromJSONString (float64 (), " NaN" , &scalar ));
1520- ASSERT_TRUE (std::isnan (checked_cast<DoubleScalar&>(*scalar ).value ));
1521- ASSERT_OK ( ScalarFromJSONString (float64 (), " Inf" , &scalar ));
1522- ASSERT_TRUE (std::isinf (checked_cast<DoubleScalar&>(*scalar ).value ));
1517+ ASSERT_OK_AND_ASSIGN ( auto nan_scalar, ScalarFromJSONString (float64 (), " NaN" ));
1518+ ASSERT_TRUE (std::isnan (checked_cast<DoubleScalar&>(*nan_scalar ).value ));
1519+ ASSERT_OK_AND_ASSIGN ( auto inf_scalar, ScalarFromJSONString (float64 (), " Inf" ));
1520+ ASSERT_TRUE (std::isinf (checked_cast<DoubleScalar&>(*inf_scalar ).value ));
15231521}
15241522
15251523TEST (TestScalarFromJSON, Errors) {
1526- std::shared_ptr<Scalar> scalar;
1527- ASSERT_RAISES (Invalid, ScalarFromJSONString (int64 (), " [0]" , &scalar));
1528- ASSERT_RAISES (Invalid, ScalarFromJSONString (int64 (), " [9223372036854775808]" , &scalar));
1529- ASSERT_RAISES (Invalid,
1530- ScalarFromJSONString (int64 (), " [-9223372036854775809]" , &scalar));
1531- ASSERT_RAISES (Invalid,
1532- ScalarFromJSONString (uint64 (), " [18446744073709551616]" , &scalar));
1533- ASSERT_RAISES (Invalid, ScalarFromJSONString (uint64 (), " [-1]" , &scalar));
1534- ASSERT_RAISES (Invalid, ScalarFromJSONString (binary (), " 0" , &scalar));
1535- ASSERT_RAISES (Invalid, ScalarFromJSONString (binary (), " []" , &scalar));
1536- ASSERT_RAISES (Invalid, ScalarFromJSONString (boolean (), " 0.0" , &scalar));
1537- ASSERT_RAISES (Invalid, ScalarFromJSONString (boolean (), " \" true\" " , &scalar));
1524+ ASSERT_RAISES (Invalid, ScalarFromJSONString (int64 (), " [0]" ));
1525+ ASSERT_RAISES (Invalid, ScalarFromJSONString (int64 (), " [9223372036854775808]" ));
1526+ ASSERT_RAISES (Invalid, ScalarFromJSONString (int64 (), " [-9223372036854775809]" ));
1527+ ASSERT_RAISES (Invalid, ScalarFromJSONString (uint64 (), " [18446744073709551616]" ));
1528+ ASSERT_RAISES (Invalid, ScalarFromJSONString (uint64 (), " [-1]" ));
1529+ ASSERT_RAISES (Invalid, ScalarFromJSONString (binary (), " 0" ));
1530+ ASSERT_RAISES (Invalid, ScalarFromJSONString (binary (), " []" ));
1531+ ASSERT_RAISES (Invalid, ScalarFromJSONString (boolean (), " 0.0" ));
1532+ ASSERT_RAISES (Invalid, ScalarFromJSONString (boolean (), " \" true\" " ));
15381533}
15391534
15401535TEST (TestDictScalarFromJSONString, Basics) {
@@ -1553,12 +1548,11 @@ TEST(TestDictScalarFromJSONString, Basics) {
15531548
15541549TEST (TestDictScalarFromJSONString, Errors) {
15551550 auto type = dictionary (int32 (), utf8 ());
1556- std::shared_ptr<Scalar> scalar;
15571551
1558- ASSERT_RAISES (Invalid, DictScalarFromJSONString (type, " \" not a valid index \" " , " [ \"\" ] " ,
1559- &scalar ));
1560- ASSERT_RAISES (Invalid, DictScalarFromJSONString (type, " 0 " , " [1] " ,
1561- &scalar )); // dict value isn't string
1552+ ASSERT_RAISES (Invalid,
1553+ DictScalarFromJSONString (type, " \" not a valid index \" " , " [ \"\" ] " ));
1554+ ASSERT_RAISES (Invalid,
1555+ DictScalarFromJSONString (type, " 0 " , " [1] " )); // dict value isn't string
15621556}
15631557
15641558} // namespace json
0 commit comments