| 24 | namespace { |
| 25 | |
| 26 | string BCast(const tensorflow::BCast::Vec& x, const tensorflow::BCast::Vec& y, |
| 27 | const bool fewer_dims_optimization = true) { |
| 28 | tensorflow::BCast b(x, y, fewer_dims_optimization); |
| 29 | if (!b.IsValid()) { |
| 30 | return "invalid"; |
| 31 | } |
| 32 | string ret; |
| 33 | strings::StrAppend(&ret, "[", absl::StrJoin(b.x_reshape(), ","), "]"); |
| 34 | strings::StrAppend(&ret, "[", absl::StrJoin(b.x_bcast(), ","), "]"); |
| 35 | strings::StrAppend(&ret, "[", absl::StrJoin(b.y_reshape(), ","), "]"); |
| 36 | strings::StrAppend(&ret, "[", absl::StrJoin(b.y_bcast(), ","), "]"); |
| 37 | strings::StrAppend(&ret, "[", absl::StrJoin(b.result_shape(), ","), "]"); |
| 38 | strings::StrAppend(&ret, "[", absl::StrJoin(b.output_shape(), ","), "]"); |
| 39 | strings::StrAppend(&ret, "[", absl::StrJoin(b.grad_x_reduce_idx(), ","), "]"); |
| 40 | strings::StrAppend(&ret, "[", absl::StrJoin(b.grad_y_reduce_idx(), ","), "]"); |
| 41 | return ret; |
| 42 | } |
| 43 | |
| 44 | TEST(BCastTest, Invalid) { |
| 45 | for (const bool use_optimization : {true, false}) { |
no test coverage detected