Files
PINA/tests/test_geometry/test_union.py
Filippo Olivo 4177bfbb50 Fix Codacy Warnings (#477)
---------

Co-authored-by: Dario Coscia <dariocos99@gmail.com>
2025-03-19 17:48:18 +01:00

98 lines
2.6 KiB
Python

import torch
from pina import LabelTensor
from pina.domain import Union, EllipsoidDomain, CartesianDomain
def test_constructor_two_CartesianDomains():
Union(
[
CartesianDomain({"x": [0, 1], "y": [0, 1]}),
CartesianDomain({"x": [0.5, 2], "y": [-1, 0.1]}),
]
)
def test_constructor_two_EllipsoidDomains():
Union(
[
EllipsoidDomain({"x": [-1, 1], "y": [-1, 1], "z": [-1, 1]}),
EllipsoidDomain(
{"x": [-0.5, 0.5], "y": [-0.5, 0.5], "z": [-0.5, 0.5]}
),
]
)
def test_constructor_EllipsoidDomain_CartesianDomain():
Union(
[
EllipsoidDomain({"x": [-1, 1], "y": [-1, 1]}),
CartesianDomain({"x": [-0.5, 0.5], "y": [-0.5, 0.5]}),
]
)
def test_is_inside_two_CartesianDomains():
pt_1 = LabelTensor(torch.tensor([[0.5, 0.5]]), ["x", "y"])
pt_2 = LabelTensor(torch.tensor([[-1, -1]]), ["x", "y"])
domain = Union(
[
CartesianDomain({"x": [0, 1], "y": [0, 1]}),
CartesianDomain({"x": [0.5, 2], "y": [-1, 0.1]}),
]
)
assert domain.is_inside(pt_1) == True
assert domain.is_inside(pt_2) == False
def test_is_inside_two_EllipsoidDomains():
pt_1 = LabelTensor(torch.tensor([[0.5, 0.5, 0.5]]), ["x", "y", "z"])
pt_2 = LabelTensor(torch.tensor([[-1, -1, -1]]), ["x", "y", "z"])
domain = Union(
[
EllipsoidDomain({"x": [-1, 1], "y": [-1, 1], "z": [-1, 1]}),
EllipsoidDomain(
{"x": [-0.5, 0.5], "y": [-0.5, 0.5], "z": [-0.5, 0.5]}
),
]
)
assert domain.is_inside(pt_1) == True
assert domain.is_inside(pt_2) == False
def test_is_inside_EllipsoidDomain_CartesianDomain():
pt_1 = LabelTensor(torch.tensor([[0.5, 0.5]]), ["x", "y"])
pt_2 = LabelTensor(torch.tensor([[-1, -1]]), ["x", "y"])
domain = Union(
[
EllipsoidDomain(
{
"x": [-1, 1],
"y": [-1, 1],
}
),
CartesianDomain({"x": [0.6, 1.5], "y": [-2, 0]}),
]
)
assert domain.is_inside(pt_1) == True
assert domain.is_inside(pt_2) == False
def test_sample():
n = 100
domain = Union(
[
EllipsoidDomain({"x": [-1, 1], "y": [-1, 1]}),
CartesianDomain({"x": [-0.5, 0.5], "y": [-0.5, 0.5]}),
]
)
pts = domain.sample(n)
assert isinstance(pts, LabelTensor)
assert pts.shape[0] == n
n = 105
pts = domain.sample(n)
assert isinstance(pts, LabelTensor)
assert pts.shape[0] == n