31 lines
1.2 KiB
Python
31 lines
1.2 KiB
Python
import torch
|
|
import pytest
|
|
|
|
from pina import LabelTensor
|
|
from pina.domain import EllipsoidDomain
|
|
|
|
|
|
def test_constructor():
|
|
EllipsoidDomain({"x": [0, 1], "y": [0, 1]})
|
|
EllipsoidDomain({"x": [0, 1], "y": [0, 1]}, sample_surface=True)
|
|
|
|
|
|
def test_is_inside_sample_surface_false():
|
|
domain = EllipsoidDomain({"x": [0, 1], "y": [0, 1]}, sample_surface=False)
|
|
pt_1 = LabelTensor(torch.tensor([[0.5, 0.5]]), ["x", "y"])
|
|
pt_2 = LabelTensor(torch.tensor([[1.0, 0.5]]), ["x", "y"])
|
|
pt_3 = LabelTensor(torch.tensor([[1.5, 0.5]]), ["x", "y"])
|
|
for pt, exp_result in zip([pt_1, pt_2, pt_3], [True, False, False]):
|
|
assert domain.is_inside(pt) == exp_result
|
|
for pt, exp_result in zip([pt_1, pt_2, pt_3], [True, True, False]):
|
|
assert domain.is_inside(pt, check_border=True) == exp_result
|
|
|
|
|
|
def test_is_inside_sample_surface_true():
|
|
domain = EllipsoidDomain({"x": [0, 1], "y": [0, 1]}, sample_surface=True)
|
|
pt_1 = LabelTensor(torch.tensor([[0.5, 0.5]]), ["x", "y"])
|
|
pt_2 = LabelTensor(torch.tensor([[1.0, 0.5]]), ["x", "y"])
|
|
pt_3 = LabelTensor(torch.tensor([[1.5, 0.5]]), ["x", "y"])
|
|
for pt, exp_result in zip([pt_1, pt_2, pt_3], [False, True, False]):
|
|
assert domain.is_inside(pt) == exp_result
|