bkietz commented on code in PR #40365:
URL: https://github.com/apache/arrow/pull/40365#discussion_r1516146997


##########
cpp/src/arrow/record_batch_test.cc:
##########
@@ -705,17 +705,12 @@ TEST_F(TestRecordBatch, ToTensorSupportedNaN) {
   std::vector<int64_t> shape = {9, 2};
   const int64_t f32_size = sizeof(float);
   std::vector<int64_t> f_strides = {f32_size, f32_size * shape[0]};
-  std::vector<float> f_values = {
-      static_cast<float>(NAN), 2,  3,  4,  5, 6, 7, 8, 9, 10, 20, 30, 40,
-      static_cast<float>(NAN), 60, 70, 80, 90};
-  auto data = Buffer::Wrap(f_values);
-
-  std::shared_ptr<Tensor> tensor_expected;
-  ASSERT_OK_AND_ASSIGN(tensor_expected, Tensor::Make(float32(), data, shape, 
f_strides));
+  std::shared_ptr<Tensor> tensor_expected = TensorFromJSON(
+      float32(), shape,
+      "[NaN, 2,  3,  4,  5, 6, 7, 8, 9, 10, 20, 30, 40, NaN, 60, 70, 80, 90]", 
f_strides);

Review Comment:
   > it might be better to very explicitly create the values as they are stored 
in the tensor
   
   ArrayFromJSON has no way to specify many valid arrow arrays, for example 
arrays with non-zero/empty values under null bits or the much larger ambiguity 
of offsets in Utf8. Constructing these directly is of course still possible 
when necessary using other functions, as in any test written before the 
addition of a FromJSON factory. However in the majority of test cases such 
flexibility would be unnecessary and distracting as we only need an obvious, 
self-contained, and maximally terse literal value. IMO writing a nested Json 
array in order to represent a nested Arrow array is clearly preferable and 
doing otherwise misses an opportunity for clarity in the most common cases; 
explicit shape/strides are still easy enough to specify using existing 
functions including ArrayFromJSON.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to