(self)
| 589 | assert verify_report_format(summary_report, report_format) |
| 590 | |
| 591 | def test_seg_summarizer(self): |
| 592 | summarizer = SegSummarizer("image", "label") |
| 593 | keys = ["image", "label"] |
| 594 | transform_list = [ |
| 595 | LoadImaged(keys=keys), |
| 596 | EnsureChannelFirstd(keys=keys), # this creates label to be (1,H,W,D) |
| 597 | ToDeviced(keys=keys, device=device, non_blocking=True), |
| 598 | Orientationd(keys=keys, axcodes="RAS"), |
| 599 | EnsureTyped(keys=keys, data_type="tensor"), |
| 600 | Lambdad(keys="label", func=lambda x: torch.argmax(x, dim=0, keepdim=True) if x.shape[0] > 1 else x), |
| 601 | SqueezeDimd(keys=["label"], dim=0), |
| 602 | summarizer, |
| 603 | ] |
| 604 | transform = Compose(transform_list) |
| 605 | create_sim_data(self.dataroot_dir, sim_datalist, (32, 32, 32), rad_max=8, rad_min=1, num_seg_classes=1) |
| 606 | files, _ = datafold_read(sim_datalist, self.dataroot_dir, fold=-1) |
| 607 | ds = Dataset(data=files) |
| 608 | self.dataset = DataLoader(ds, batch_size=1, shuffle=False, num_workers=n_workers, collate_fn=no_collation) |
| 609 | stats = [] |
| 610 | for batch_data in self.dataset: |
| 611 | d = transform(batch_data[0]) |
| 612 | stats.append(d) |
| 613 | report = summarizer.summarize(stats) |
| 614 | assert str(DataStatsKeys.IMAGE_STATS) in report |
| 615 | assert str(DataStatsKeys.FG_IMAGE_STATS) in report |
| 616 | assert str(DataStatsKeys.LABEL_STATS) in report |
| 617 | |
| 618 | def tearDown(self) -> None: |
| 619 | self.test_dir.cleanup() |
nothing calls this directly
no test coverage detected