예제 #1
0
    def test_summary_quantiles(self, small_cont: ImageContainer, quantiles: Tuple[float, ...]):
        if not len(quantiles):
            with pytest.raises(ValueError, match=r"No quantiles have been selected."):
                small_cont.features_summary("image", quantiles=quantiles, feature_name="foo", channels=(0, 1))
        else:
            features = small_cont.features_summary("image", quantiles=quantiles, feature_name="foo", channels=(0, 1))
            haystack = features.keys()

            assert isinstance(features, dict)
            for c in (0, 1):
                for agg in ("mean", "std"):
                    assert f"foo_ch-{c}_{agg}" in haystack, haystack
                for q in quantiles:
                    assert f"foo_ch-{c}_quantile-{q}" in haystack, haystack
예제 #2
0
    def test_custom_default_name(self, small_cont: ImageContainer):
        custom_features = small_cont.features_custom(np.mean, layer="image", channels=[0])
        summary_features = small_cont.features_summary("image", feature_name="summary", channels=[0])

        assert len(custom_features) == 1
        assert f"{np.mean.__name__}_0" in custom_features
        assert custom_features[f"{np.mean.__name__}_0"] == summary_features["summary_ch-0_mean"]
예제 #3
0
 def test_invalid_channels(self, small_cont: ImageContainer):
     with pytest.raises(ValueError, match=r"Channel `-1` is not in"):
         small_cont.features_summary("image", channels=-1)
예제 #4
0
 def test_invalid_layer(self, small_cont: ImageContainer):
     with pytest.raises(KeyError, match=r"Image layer `foobar` not found in"):
         small_cont.features_summary("foobar")
예제 #5
0
 def test_container_empty(self):
     cont = ImageContainer()
     with pytest.raises(ValueError, match=r"The container is empty."):
         cont.features_summary("image")