(self, _, data_name, acceptable_diff, is_meta, *transforms)
| 424 | |
| 425 | @parameterized.expand(TESTS) |
| 426 | def test_inverse(self, _, data_name, acceptable_diff, is_meta, *transforms): |
| 427 | name = _ |
| 428 | |
| 429 | data = self.all_data[data_name] |
| 430 | if is_meta: |
| 431 | data = ToMetaTensord(KEYS)(data) |
| 432 | |
| 433 | forwards = [data.copy()] |
| 434 | |
| 435 | # Apply forwards |
| 436 | for t in transforms: |
| 437 | if isinstance(t, Randomizable): |
| 438 | t.set_random_state(seed=get_seed()) |
| 439 | forwards.append(t(forwards[-1])) |
| 440 | |
| 441 | # Apply inverses |
| 442 | fwd_bck = forwards[-1].copy() |
| 443 | for i, t in enumerate(reversed(transforms)): |
| 444 | if isinstance(t, InvertibleTransform): |
| 445 | if isinstance(fwd_bck, list): |
| 446 | for j, _fwd_bck in enumerate(fwd_bck): |
| 447 | fwd_bck = t.inverse(_fwd_bck) |
| 448 | self.check_inverse( |
| 449 | name, data.keys(), forwards[-i - 2], fwd_bck, forwards[-1][j], acceptable_diff |
| 450 | ) |
| 451 | else: |
| 452 | fwd_bck = t.inverse(fwd_bck) |
| 453 | self.check_inverse(name, data.keys(), forwards[-i - 2], fwd_bck, forwards[-1], acceptable_diff) |
| 454 | |
| 455 | # skip this test if multiprocessing uses 'spawn', as the check is only basic anyway |
| 456 | @skipUnless(torch.multiprocessing.get_start_method() == "spawn", "requires spawn") |
nothing calls this directly
no test coverage detected