Update Laplace class and add unit tests (#645)

This commit is contained in:
Giovanni Canali
2025-09-22 15:05:28 +02:00
committed by GitHub
parent 4a6e73fa54
commit 4e37468460
15 changed files with 673 additions and 157 deletions

View File

@@ -5,7 +5,7 @@ from pina.problem import SpatialProblem, TimeDependentProblem
@pytest.mark.parametrize("c", [1.5, 3])
def test_constructor(c):
print(f"Testing with c = {c} (type: {type(c)})")
problem = AdvectionProblem(c=c)
problem.discretise_domain(n=10, mode="random", domains="all")
assert problem.are_all_domains_discretised
@@ -14,5 +14,6 @@ def test_constructor(c):
assert hasattr(problem, "conditions")
assert isinstance(problem.conditions, dict)
# Should fail if c is not a float or int
with pytest.raises(ValueError):
AdvectionProblem(c="a")
AdvectionProblem(c="invalid")

View File

@@ -1,12 +1,24 @@
import pytest
from pina.problem.zoo import AllenCahnProblem
from pina.problem import SpatialProblem, TimeDependentProblem
def test_constructor():
problem = AllenCahnProblem()
@pytest.mark.parametrize("alpha", [0.1, 1])
@pytest.mark.parametrize("beta", [0.1, 1])
def test_constructor(alpha, beta):
problem = AllenCahnProblem(alpha=alpha, beta=beta)
problem.discretise_domain(n=10, mode="random", domains="all")
assert problem.are_all_domains_discretised
assert isinstance(problem, SpatialProblem)
assert isinstance(problem, TimeDependentProblem)
assert hasattr(problem, "conditions")
assert isinstance(problem.conditions, dict)
# Should fail if alpha is not a float or int
with pytest.raises(ValueError):
AllenCahnProblem(alpha="invalid", beta=beta)
# Should fail if beta is not a float or int
with pytest.raises(ValueError):
AllenCahnProblem(alpha=alpha, beta="invalid")

View File

@@ -1,12 +1,19 @@
import pytest
from pina.problem.zoo import DiffusionReactionProblem
from pina.problem import TimeDependentProblem, SpatialProblem
def test_constructor():
problem = DiffusionReactionProblem()
@pytest.mark.parametrize("alpha", [0.1, 1])
def test_constructor(alpha):
problem = DiffusionReactionProblem(alpha=alpha)
problem.discretise_domain(n=10, mode="random", domains="all")
assert problem.are_all_domains_discretised
assert isinstance(problem, TimeDependentProblem)
assert isinstance(problem, SpatialProblem)
assert hasattr(problem, "conditions")
assert isinstance(problem.conditions, dict)
# Should fail if alpha is not a float or int
with pytest.raises(ValueError):
problem = DiffusionReactionProblem(alpha="invalid")

View File

@@ -5,6 +5,7 @@ from pina.problem import SpatialProblem
@pytest.mark.parametrize("alpha", [1.5, 3])
def test_constructor(alpha):
problem = HelmholtzProblem(alpha=alpha)
problem.discretise_domain(n=10, mode="random", domains="all")
assert problem.are_all_domains_discretised
@@ -13,4 +14,4 @@ def test_constructor(alpha):
assert isinstance(problem.conditions, dict)
with pytest.raises(ValueError):
HelmholtzProblem(alpha="a")
HelmholtzProblem(alpha="invalid")

View File

@@ -1,6 +1,6 @@
import pytest
from pina.problem.zoo import InversePoisson2DSquareProblem
from pina.problem import InverseProblem, SpatialProblem
import pytest
@pytest.mark.parametrize("load", [True, False])

View File

@@ -3,6 +3,7 @@ from pina.problem import SpatialProblem
def test_constructor():
problem = Poisson2DSquareProblem()
problem.discretise_domain(n=10, mode="random", domains="all")
assert problem.are_all_domains_discretised