| 130 | |
| 131 | template<typename T> |
| 132 | void IdentityCCheck() { |
| 133 | SUPPORTED_TYPE_CHECK(T); |
| 134 | |
| 135 | static const int num = 1000; |
| 136 | dtype dty = (dtype)dtype_traits<T>::af_type; |
| 137 | af_array out; |
| 138 | dim_t dim[] = {(dim_t)num, (dim_t)num}; |
| 139 | ASSERT_SUCCESS(af_identity(&out, 2, dim, dty)); |
| 140 | |
| 141 | vector<T> h_in(num * num); |
| 142 | af_get_data_ptr(&h_in.front(), out); |
| 143 | |
| 144 | for (int i = 0; i < num; i++) { |
| 145 | for (int j = 0; j < num; j++) { |
| 146 | if (j == i) |
| 147 | ASSERT_EQ(h_in[i * num + j], T(1)); |
| 148 | else |
| 149 | ASSERT_EQ(h_in[i * num + j], T(0)); |
| 150 | } |
| 151 | } |
| 152 | ASSERT_SUCCESS(af_release_array(out)); |
| 153 | } |
| 154 | |
| 155 | template<typename T> |
| 156 | void IdentityCPPError() { |
nothing calls this directly
no test coverage detected