In [ ]:
# setup
from planet4 import markings
import numpy as np
from numpy.testing import assert_allclose
import pandas as pd
blotchdata = dict(
x = 100,
y = 200,
radius_1 = 30,
radius_2 = 40,
angle = 25,
image_id='blotch_id',
)
blotchdata = pd.Series(blotchdata)
fandata = dict(x = 300,
y = 400,
angle = 55,
spread = 17,
distance = 23,
image_id = 'fan_id'
)
fandata = pd.Series(fandata)
In [ ]:
# test_blotch
blotch = markings.Blotch(blotchdata)
assert blotch.angle == 25
assert blotch.center == (100, 200)
assert blotch.height == 80
assert blotch.width == 60
assert blotch.x == 100
assert blotch.y == 200
In [ ]:
# test_fan
fan = markings.Fan(fandata)
assert_allclose(fan.base, np.array([300, 400]))
assert_allclose(fan.coords, np.array([[ 313.92663903, 414.67561542],
[ 300. , 400. ],
[ 309.02737644, 418.10611602]]))
assert_allclose(fan.inside_half, 8.5)
assert_allclose(fan.armlength, 20.231781009871817)
assert_allclose(fan.v1, np.array([13.92663903, 14.67561542]))
assert_allclose(fan.v2, np.array([ 9.02737644, 18.10611602]))
assert_allclose(fan.center, np.array([ 311.47700774, 416.39086572]))
assert_allclose(fan.circle_base, np.array([ 4.89926259, -3.4305006 ]))
assert_allclose(fan.radius, 2.990447637172394)
assert_allclose(fan.center, np.array([ 311.47700774, 416.39086572]))
assert_allclose(fan.midpoint, np.array([ 306.65986158, 409.51126803]))
assert_allclose(fan.base_to_midpoint_vec,
np.array([[ 300. , 400. ],
[ 306.65986158, 409.51126803]]))
In [ ]:
fnotch = markings.Fnotch(0.4, markings.Fan(fandata),
markings.Blotch(blotchdata))
assert_allclose(fnotch.value, 0.4)
assert isinstance(fnotch.get_marking(0.8), markings.Blotch)
assert isinstance(fnotch.get_marking(0.3), markings.Fan)
In [ ]: