test_synthetic.py
from ..synthetic import gen_image
import numpy as np
from ... import backend as T
def test_gen_image():
"""Test for image_weight"""
# Swiss
true_res = T.tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[0., 0., 0., 1., 1., 1., 1., 0., 0., 0.],
[0., 0., 0., 1., 1., 1., 1., 0., 0., 0.],
[0., 1., 1., 1., 1., 1., 1., 1., 1., 0.],
[0., 1., 1., 1., 1., 1., 1., 1., 1., 0.],
[0., 1., 1., 1., 1., 1., 1., 1., 1., 0.],
[0., 1., 1., 1., 1., 1., 1., 1., 1., 0.],
[0., 0., 0., 1., 1., 1., 1., 0., 0., 0.],
[0., 0., 0., 1., 1., 1., 1., 0., 0., 0.],
[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])
res = gen_image(region='swiss', image_height=10, image_width=10, weight_value=1)
T.assert_array_equal(true_res, res)
# Rectangle
true_res = T.tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[0., 0., 0., 1., 1., 1., 1., 0., 0., 0.],
[0., 0., 0., 1., 1., 1., 1., 0., 0., 0.],
[0., 0., 0., 1., 1., 1., 1., 0., 0., 0.],
[0., 0., 0., 1., 1., 1., 1., 0., 0., 0.],
[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])
res = gen_image(region='rectangle', image_height=10, image_width=10, weight_value=1)
T.assert_array_equal(true_res, res)
# circle: approximate test
res = gen_image(region='circle', image_height=60, image_width=60, weight_value=1)
radius = 20
surface = np.pi*radius**2
tol = surface * 0.005 # tolerate 0.5% error
assert(abs(T.sum(res) - surface) < tol)