| 86 | *os << array->ToString(); |
| 87 | } |
| 88 | bool MatchAndExplain( |
| 89 | const arg_type& arg, |
| 90 | ::testing::MatchResultListener* result_listener) const override { |
| 91 | for (int64_t i = 0; i < array->length(); ++i) { |
| 92 | std::shared_ptr<Scalar> scalar; |
| 93 | auto maybe_scalar = array->GetScalar(i); |
| 94 | if (maybe_scalar.ok()) { |
| 95 | scalar = maybe_scalar.ValueOrDie(); |
| 96 | } else { |
| 97 | *result_listener << "GetScalar() had status " |
| 98 | << maybe_scalar.status().ToString() << "at index " << i |
| 99 | << " in the input JSON Array"; |
| 100 | return false; |
| 101 | } |
| 102 | |
| 103 | if (scalar->Equals(*arg)) return true; |
| 104 | } |
| 105 | *result_listener << "Argument scalar: '" << arg->ToString() |
| 106 | << "' matches no scalar from " << array->ToString(); |
| 107 | return false; |
| 108 | } |
| 109 | const std::shared_ptr<DataType> type_; |
| 110 | const std::string array_json_; |
| 111 | std::shared_ptr<Array> array; |