()
| 180 | |
| 181 | |
| 182 | def test_custom_mean_stdev(): |
| 183 | left = T( |
| 184 | """ |
| 185 | pet | owner | age |
| 186 | cat | Alice | 10 |
| 187 | dog | Bob | 9 |
| 188 | cat | Alice | 8 |
| 189 | dog | Bob | 7 |
| 190 | """ |
| 191 | ) |
| 192 | |
| 193 | left_res = left.groupby(left.pet).reduce( |
| 194 | left.pet, mean_stdev=custom_mean_stdev(pw.this.age) |
| 195 | ) |
| 196 | |
| 197 | left_res = left_res.with_columns( |
| 198 | mean=pw.this.mean_stdev[0], stdev=pw.this.mean_stdev[1] |
| 199 | ).without(pw.this.mean_stdev) |
| 200 | |
| 201 | assert_table_equality_wo_types( |
| 202 | left_res, |
| 203 | T( |
| 204 | """ |
| 205 | pet | mean | stdev |
| 206 | dog | 8 | 1 |
| 207 | cat | 9 | 1 |
| 208 | """, |
| 209 | id_from=["pet"], |
| 210 | ), |
| 211 | ) |
| 212 | |
| 213 | |
| 214 | class CustomProductWithAdditionAccumulator(pw.BaseCustomAccumulator): |
nothing calls this directly
no test coverage detected