fix(v5): average noisy copies from clean source
This commit is contained in:
@@ -233,6 +233,29 @@ class ApiTests(TestCase):
|
||||
self.assertEqual(result.ndim, 2)
|
||||
self.assertEqual(int(result[0, 0]), 96)
|
||||
|
||||
def test_average_noisy_copies_uses_clean_parent_after_gaussian_noise_state(self):
|
||||
upload = self.client.post("/api/images/", {"image": grayscale_png_upload(value=96)}, format="multipart")
|
||||
s0_id = upload.data["states"][0]["state_id"]
|
||||
noisy = self.client.post(
|
||||
f"/api/states/{s0_id}/operations/",
|
||||
{"operation": "noise_filter", "params": {"kind": "gaussian", "mean": 0.2, "variance": 0}},
|
||||
format="json",
|
||||
)
|
||||
noisy_image = load_image_array(ImageState.objects.get(id=noisy.data["state_id"]).image)
|
||||
self.assertGreater(int(noisy_image[0, 0]), 96)
|
||||
|
||||
averaged = self.client.post(
|
||||
f"/api/states/{noisy.data['state_id']}/operations/",
|
||||
{"operation": "average_noisy_copies", "params": {"N": 10, "kind": "gaussian", "mean": 0, "variance": 0}},
|
||||
format="json",
|
||||
)
|
||||
|
||||
self.assertEqual(averaged.status_code, 201)
|
||||
self.assertEqual(averaged.data["parent_state_id"], noisy.data["state_id"])
|
||||
self.assertEqual(averaged.data["params"]["source_state_id"], s0_id)
|
||||
result = load_image_array(ImageState.objects.get(id=averaged.data["state_id"]).image)
|
||||
self.assertEqual(int(result[0, 0]), 96)
|
||||
|
||||
def test_periodic_noise_preserves_grayscale_and_zero_amplitude(self):
|
||||
upload = self.client.post("/api/images/", {"image": grayscale_png_upload(value=96)}, format="multipart")
|
||||
s0_id = upload.data["states"][0]["state_id"]
|
||||
|
||||
Reference in New Issue
Block a user