foamlib 0.8.10__tar.gz → 0.8.11__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {foamlib-0.8.10 → foamlib-0.8.11}/PKG-INFO +1 -26
- {foamlib-0.8.10 → foamlib-0.8.11}/foamlib/__init__.py +1 -1
- {foamlib-0.8.10 → foamlib-0.8.11}/foamlib/_files/_parsing.py +12 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/pyproject.toml +19 -18
- {foamlib-0.8.10 → foamlib-0.8.11}/tests/test_files/test_parsing/test_advanced.py +5 -6
- {foamlib-0.8.10 → foamlib-0.8.11}/tests/test_files/test_parsing/test_basic.py +6 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/tests/test_files/test_parsing/test_decompose_par.py +3 -3
- {foamlib-0.8.10 → foamlib-0.8.11}/tests/test_files/test_parsing/test_fields.py +7 -4
- {foamlib-0.8.10 → foamlib-0.8.11}/tests/test_files/test_parsing/test_fv_schemes.py +7 -7
- {foamlib-0.8.10 → foamlib-0.8.11}/tests/test_files/test_parsing/test_intermediate.py +4 -2
- {foamlib-0.8.10 → foamlib-0.8.11}/tests/test_files/test_parsing/test_poly_mesh.py +17 -15
- {foamlib-0.8.10 → foamlib-0.8.11}/.devcontainer.json +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/.dockerignore +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/.git-blame-ignore-revs +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/.github/dependabot.yml +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/.github/workflows/ci.yml +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/.github/workflows/docker.yml +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/.github/workflows/dockerhub-description.yml +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/.github/workflows/pypi-publish.yml +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/.gitignore +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/.readthedocs.yaml +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/CONTRIBUTING.md +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/Dockerfile +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/LICENSE.txt +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/README.md +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/benchmark/benchmark.png +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/benchmark/benchmark.py +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/benchmark/requirements.txt +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/benchmark/ruff.toml +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/docs/Makefile +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/docs/cases.rst +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/docs/conf.py +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/docs/files.rst +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/docs/index.rst +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/docs/make.bat +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/docs/ruff.toml +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/foamlib/_cases/__init__.py +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/foamlib/_cases/_async.py +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/foamlib/_cases/_base.py +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/foamlib/_cases/_run.py +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/foamlib/_cases/_slurm.py +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/foamlib/_cases/_subprocess.py +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/foamlib/_cases/_sync.py +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/foamlib/_cases/_util.py +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/foamlib/_files/__init__.py +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/foamlib/_files/_files.py +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/foamlib/_files/_io.py +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/foamlib/_files/_serialization.py +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/foamlib/_files/_types.py +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/foamlib/py.typed +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/logo.png +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/tests/__init__.py +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/tests/ruff.toml +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/tests/test_cases/__init__.py +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/tests/test_cases/test_cavity.py +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/tests/test_cases/test_cavity_async.py +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/tests/test_cases/test_flange.py +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/tests/test_cases/test_flange_async.py +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/tests/test_example.py +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/tests/test_files/__init__.py +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/tests/test_files/test_dumps.py +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/tests/test_files/test_files.py +0 -0
- {foamlib-0.8.10 → foamlib-0.8.11}/tests/test_files/test_parsing/__init__.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: foamlib
|
3
|
-
Version: 0.8.
|
3
|
+
Version: 0.8.11
|
4
4
|
Summary: A Python interface for interacting with OpenFOAM
|
5
5
|
Project-URL: Homepage, https://github.com/gerlero/foamlib
|
6
6
|
Project-URL: Repository, https://github.com/gerlero/foamlib
|
@@ -30,35 +30,10 @@ Requires-Dist: numpy<3,>=1
|
|
30
30
|
Requires-Dist: pyparsing<4,>=3.1.2
|
31
31
|
Requires-Dist: rich<15,>=13
|
32
32
|
Requires-Dist: typing-extensions<5,>=4; python_version < '3.11'
|
33
|
-
Provides-Extra: dev
|
34
|
-
Requires-Dist: mypy<2,>=1; extra == 'dev'
|
35
|
-
Requires-Dist: pytest-asyncio<0.27,>=0.21; extra == 'dev'
|
36
|
-
Requires-Dist: pytest-cov; extra == 'dev'
|
37
|
-
Requires-Dist: pytest<9,>=7; extra == 'dev'
|
38
|
-
Requires-Dist: ruff; extra == 'dev'
|
39
|
-
Requires-Dist: scipy-stubs; (python_version >= '3.10') and extra == 'dev'
|
40
|
-
Requires-Dist: scipy<2,>=1; extra == 'dev'
|
41
|
-
Requires-Dist: sphinx-rtd-theme; extra == 'dev'
|
42
|
-
Requires-Dist: sphinx<9,>=5; extra == 'dev'
|
43
33
|
Provides-Extra: docs
|
44
34
|
Requires-Dist: ruff; extra == 'docs'
|
45
35
|
Requires-Dist: sphinx-rtd-theme; extra == 'docs'
|
46
36
|
Requires-Dist: sphinx<9,>=5; extra == 'docs'
|
47
|
-
Provides-Extra: lint
|
48
|
-
Requires-Dist: ruff; extra == 'lint'
|
49
|
-
Provides-Extra: test
|
50
|
-
Requires-Dist: mypy<2,>=1; extra == 'test'
|
51
|
-
Requires-Dist: pytest-asyncio<0.27,>=0.21; extra == 'test'
|
52
|
-
Requires-Dist: pytest-cov; extra == 'test'
|
53
|
-
Requires-Dist: pytest<9,>=7; extra == 'test'
|
54
|
-
Requires-Dist: scipy<2,>=1; extra == 'test'
|
55
|
-
Provides-Extra: typing
|
56
|
-
Requires-Dist: mypy<2,>=1; extra == 'typing'
|
57
|
-
Requires-Dist: pytest-asyncio<0.27,>=0.21; extra == 'typing'
|
58
|
-
Requires-Dist: pytest-cov; extra == 'typing'
|
59
|
-
Requires-Dist: pytest<9,>=7; extra == 'typing'
|
60
|
-
Requires-Dist: scipy-stubs; (python_version >= '3.10') and extra == 'typing'
|
61
|
-
Requires-Dist: scipy<2,>=1; extra == 'typing'
|
62
37
|
Description-Content-Type: text/markdown
|
63
38
|
|
64
39
|
[<img alt="foamlib" src="https://github.com/gerlero/foamlib/raw/main/logo.png" height="65">](https://github.com/gerlero/foamlib)
|
@@ -115,6 +115,10 @@ def _tensor_list(
|
|
115
115
|
rf"\((?:{ignore_pattern})?(?:{tensor.re.pattern}{ignore_pattern})*{tensor.re.pattern}(?:{ignore_pattern})?\)"
|
116
116
|
).add_parse_action(
|
117
117
|
lambda tks: [_parse_ascii_field(tks[0], tensor_kind, ignore=ignore)]
|
118
|
+
) | (
|
119
|
+
(Literal("(") + Literal(")"))
|
120
|
+
.suppress()
|
121
|
+
.add_parse_action(lambda: np.array([]).reshape(0, *tensor_kind.shape))
|
118
122
|
)
|
119
123
|
|
120
124
|
def count_parse_action(tks: ParseResults) -> None:
|
@@ -122,6 +126,14 @@ def _tensor_list(
|
|
122
126
|
length = tks[0]
|
123
127
|
assert isinstance(length, int)
|
124
128
|
|
129
|
+
if not length:
|
130
|
+
list_ <<= (
|
131
|
+
((Literal("(") + Literal(")")) | (Literal("{") + Literal("}")))
|
132
|
+
.suppress()
|
133
|
+
.add_parse_action(lambda: np.array([]).reshape(0, *tensor_kind.shape))
|
134
|
+
)
|
135
|
+
return
|
136
|
+
|
125
137
|
list_ <<= (
|
126
138
|
Regex(
|
127
139
|
rf"\((?:{ignore_pattern})?(?:{tensor.re.pattern}{ignore_pattern}){{{length - 1}}}{tensor.re.pattern}(?:{ignore_pattern})?\)"
|
@@ -39,36 +39,34 @@ dependencies = [
|
|
39
39
|
dynamic = ["version"]
|
40
40
|
|
41
41
|
[dependency-groups]
|
42
|
-
dev = ["foamlib[dev]"]
|
43
|
-
lint = ["foamlib[lint]"]
|
44
|
-
test = ["foamlib[test]"]
|
45
|
-
typing = ["foamlib[typing]"]
|
46
|
-
docs = ["foamlib[docs]"]
|
47
|
-
|
48
|
-
[project.optional-dependencies]
|
49
42
|
lint = ["ruff"]
|
50
|
-
|
43
|
+
typing = [
|
51
44
|
"mypy>=1,<2",
|
45
|
+
"scipy-stubs; python_version>='3.10'",
|
46
|
+
]
|
47
|
+
test = [
|
52
48
|
"pytest>=7,<9",
|
53
49
|
"pytest-asyncio>=0.21,<0.27",
|
54
50
|
"pytest-cov",
|
55
51
|
"scipy>=1,<2",
|
56
52
|
]
|
57
|
-
typing = [
|
58
|
-
"foamlib[test]",
|
59
|
-
"mypy>=1,<2",
|
60
|
-
"scipy-stubs; python_version>='3.10'",
|
61
|
-
]
|
62
53
|
docs = [
|
63
54
|
"ruff",
|
64
55
|
"sphinx>=5,<9",
|
65
56
|
"sphinx_rtd_theme",
|
66
57
|
]
|
67
58
|
dev = [
|
68
|
-
"
|
69
|
-
"
|
70
|
-
"
|
71
|
-
"
|
59
|
+
{include-group = "lint"},
|
60
|
+
{include-group = "typing"},
|
61
|
+
{include-group = "test"},
|
62
|
+
{include-group = "docs"},
|
63
|
+
]
|
64
|
+
|
65
|
+
[project.optional-dependencies]
|
66
|
+
docs = [
|
67
|
+
"ruff",
|
68
|
+
"sphinx>=5,<9",
|
69
|
+
"sphinx_rtd_theme",
|
72
70
|
]
|
73
71
|
|
74
72
|
[project.urls]
|
@@ -80,7 +78,10 @@ Documentation = "https://foamlib.readthedocs.io"
|
|
80
78
|
path = "foamlib/__init__.py"
|
81
79
|
|
82
80
|
[tool.mypy]
|
83
|
-
packages = [
|
81
|
+
packages = [
|
82
|
+
"foamlib",
|
83
|
+
"tests",
|
84
|
+
]
|
84
85
|
strict = true
|
85
86
|
|
86
87
|
[tool.ruff.lint]
|
@@ -1,6 +1,5 @@
|
|
1
1
|
# Based on https://foss.heptapod.net/fluiddyn/fluidsimfoam/-/blob/branch/default/tests/test_parser_advanced.py
|
2
2
|
|
3
|
-
import numpy as np
|
4
3
|
import pytest
|
5
4
|
from foamlib._files._parsing import Parsed
|
6
5
|
|
@@ -17,10 +16,10 @@ def test_dict_strange_name() -> None:
|
|
17
16
|
"""
|
18
17
|
)
|
19
18
|
assert parsed[
|
20
|
-
(("div(phi,ft_b_ha_hau)", "Gauss", "multivariateSelection"), "ft")
|
19
|
+
(("div(phi,ft_b_ha_hau)", "Gauss", "multivariateSelection"), "ft") # type: ignore[index]
|
21
20
|
] == ("limitedLinear01", 1)
|
22
21
|
assert parsed[
|
23
|
-
(("div(phi,ft_b_ha_hau)", "Gauss", "multivariateSelection"), "b")
|
22
|
+
(("div(phi,ft_b_ha_hau)", "Gauss", "multivariateSelection"), "b") # type: ignore[index]
|
24
23
|
] == ("limitedLinear01", 1)
|
25
24
|
|
26
25
|
|
@@ -263,7 +262,7 @@ def test_list_triple_named() -> None:
|
|
263
262
|
"""
|
264
263
|
)
|
265
264
|
assert parsed[("velocity-inlet-5", "type")] == "fixedValue"
|
266
|
-
assert
|
265
|
+
assert parsed[("velocity-inlet-5", "value")] == pytest.approx([1, 0, 0])
|
267
266
|
|
268
267
|
|
269
268
|
def test_assignment_strange_name() -> None:
|
@@ -356,9 +355,9 @@ def test_list_as_write_cell_centers() -> None:
|
|
356
355
|
);
|
357
356
|
"""
|
358
357
|
)
|
359
|
-
assert
|
358
|
+
assert parsed[("value",)] == pytest.approx([47.619, 142.857])
|
360
359
|
|
361
360
|
|
362
361
|
def test_list_as_write_cell_centers_short() -> None:
|
363
362
|
parsed = Parsed(b"value nonuniform List<scalar> 4(250 750 1250 1750);")
|
364
|
-
assert
|
363
|
+
assert parsed[("value",)] == pytest.approx([250, 750, 1250, 1750])
|
@@ -26,6 +26,12 @@ def test_parse_value() -> None:
|
|
26
26
|
field = Parsed(b"nonuniform List<scalar> 2{1}")[()]
|
27
27
|
assert isinstance(field, np.ndarray)
|
28
28
|
assert np.array_equal(field, [1, 1])
|
29
|
+
field = Parsed(b"nonuniform List<symmTensor> 0()")[()]
|
30
|
+
assert isinstance(field, np.ndarray)
|
31
|
+
assert field.shape == (0, 6)
|
32
|
+
field = Parsed(b"nonuniform List<tensor> ()")[()]
|
33
|
+
assert isinstance(field, np.ndarray)
|
34
|
+
assert field.shape == (0, 9)
|
29
35
|
assert Parsed(b"3(1 2 3)")[()] == [1, 2, 3]
|
30
36
|
assert Parsed(b"2((1 2 3) (4 5 6))")[()] == [
|
31
37
|
[1, 2, 3],
|
@@ -43,9 +43,9 @@ def test_simple(tmp_path: Path) -> None:
|
|
43
43
|
|
44
44
|
assert decompose_par_dict["numberOfSubdomains"] == 8
|
45
45
|
assert decompose_par_dict["method"] == "simple"
|
46
|
-
assert decompose_par_dict["coeffs"
|
47
|
-
assert decompose_par_dict["coeffs"
|
48
|
-
assert decompose_par_dict["coeffs"
|
46
|
+
assert decompose_par_dict["coeffs", "n"] == [4, 2, 1]
|
47
|
+
assert decompose_par_dict["coeffs", "order"] == "xyz"
|
48
|
+
assert decompose_par_dict["coeffs", "delta"] == 0.001
|
49
49
|
|
50
50
|
|
51
51
|
def test_scotch(tmp_path: Path) -> None:
|
@@ -4,6 +4,7 @@ from pathlib import Path
|
|
4
4
|
from textwrap import dedent
|
5
5
|
|
6
6
|
import numpy as np
|
7
|
+
import pytest
|
7
8
|
from foamlib import FoamFieldFile
|
8
9
|
|
9
10
|
code_p = dedent(
|
@@ -79,8 +80,9 @@ def test_nut(tmp_path: Path) -> None:
|
|
79
80
|
|
80
81
|
assert field.dimensions == FoamFieldFile.DimensionSet(length=2, time=-1)
|
81
82
|
assert field.internal_field == 0
|
82
|
-
assert field.boundary_field["wall"]
|
83
|
-
assert field.boundary_field["wall"]
|
83
|
+
assert isinstance(field.boundary_field["wall"], FoamFieldFile.BoundarySubDict)
|
84
|
+
assert field.boundary_field["wall"].type == "nutkWallFunction"
|
85
|
+
assert field.boundary_field["wall"].value == "$internalField"
|
84
86
|
assert field.boundary_field["#includeEtc"] == '"caseDicts/setConstraintTypes"'
|
85
87
|
|
86
88
|
|
@@ -282,7 +284,7 @@ code_cx = dedent(
|
|
282
284
|
)
|
283
285
|
|
284
286
|
|
285
|
-
def
|
287
|
+
def test_cell_centers(tmp_path: Path) -> None:
|
286
288
|
"""Data obtained with `postProcess -func writeCellCentres`
|
287
289
|
|
288
290
|
https://www.openfoam.com/documentation/guides/latest/doc/guide-fos-field-writeCellCentres.html
|
@@ -299,4 +301,5 @@ def test_cells_centers(tmp_path: Path) -> None:
|
|
299
301
|
assert field_c.dimensions == FoamFieldFile.DimensionSet(length=1)
|
300
302
|
assert field_cx.dimensions == FoamFieldFile.DimensionSet(length=1)
|
301
303
|
|
302
|
-
assert
|
304
|
+
assert isinstance(field_c.internal_field, np.ndarray)
|
305
|
+
assert field_c.internal_field[:, 0] == pytest.approx(field_cx.internal_field)
|
@@ -59,14 +59,14 @@ def test_simple(tmp_path: Path) -> None:
|
|
59
59
|
|
60
60
|
fv_schemes = FoamFile(path)
|
61
61
|
|
62
|
-
assert fv_schemes["ddtSchemes"
|
62
|
+
assert fv_schemes["ddtSchemes", "default"] == "Euler"
|
63
63
|
assert not fv_schemes["gradSchemes"]
|
64
|
-
assert fv_schemes["divSchemes"
|
65
|
-
assert fv_schemes["divSchemes"
|
66
|
-
assert fv_schemes["divSchemes"
|
67
|
-
assert fv_schemes["divSchemes"
|
64
|
+
assert fv_schemes["divSchemes", "div(phi,T)"] == ("Gauss", "limitedLinear", 1)
|
65
|
+
assert fv_schemes["divSchemes", "div(phi,U)"] == "foo"
|
66
|
+
assert fv_schemes["divSchemes", "div(phi.b,k.b)"] == ("Gauss", "limitedLinear", 1)
|
67
|
+
assert fv_schemes["divSchemes", "div(phi,k)"] == "$turbulence"
|
68
68
|
assert not fv_schemes["laplacianSchemes"]
|
69
69
|
assert not fv_schemes["interpolationSchemes"]
|
70
70
|
assert not fv_schemes["snGradSchemes"]
|
71
|
-
assert fv_schemes["fluxRequired"
|
72
|
-
assert fv_schemes["fluxRequired"
|
71
|
+
assert fv_schemes["fluxRequired", "default"] is False
|
72
|
+
assert fv_schemes["fluxRequired", "p_rbgh"] == ""
|
@@ -1,6 +1,5 @@
|
|
1
1
|
# Based on https://foss.heptapod.net/fluiddyn/fluidsimfoam/-/blob/branch/default/tests/test_parser.py
|
2
2
|
|
3
|
-
import numpy as np
|
4
3
|
import pytest
|
5
4
|
from foamlib import FoamFile
|
6
5
|
from foamlib._files._parsing import Parsed
|
@@ -383,8 +382,11 @@ def test_dimension_set() -> None:
|
|
383
382
|
}
|
384
383
|
""")
|
385
384
|
assert parsed[("dimensions",)] == FoamFile.DimensionSet(length=2, time=-1)
|
385
|
+
assert isinstance(parsed[("nu",)], FoamFile.Dimensioned)
|
386
386
|
assert parsed[("nu",)].dimensions == FoamFile.DimensionSet(length=2, time=-1)
|
387
|
+
assert isinstance(parsed[("nu1",)], FoamFile.Dimensioned)
|
387
388
|
assert parsed[("nu1",)].dimensions == FoamFile.DimensionSet(length=2, time=-1)
|
389
|
+
assert isinstance(parsed[("SIMPLE", "rhoMin")], FoamFile.Dimensioned)
|
388
390
|
assert parsed[("SIMPLE", "rhoMin")].dimensions == FoamFile.DimensionSet(
|
389
391
|
mass=1, length=-3
|
390
392
|
)
|
@@ -715,4 +717,4 @@ def test_list_uniform() -> None:
|
|
715
717
|
);
|
716
718
|
""")
|
717
719
|
assert parsed[("a",)] == 1
|
718
|
-
assert
|
720
|
+
assert parsed[("internalField",)] == pytest.approx([0.1, 0, 0])
|
@@ -1,6 +1,5 @@
|
|
1
1
|
# Based on https://foss.heptapod.net/fluiddyn/fluidsimfoam/-/blob/branch/default/tests/test_polymesh.py
|
2
2
|
|
3
|
-
|
4
3
|
from pathlib import Path
|
5
4
|
|
6
5
|
from foamlib import FoamFile
|
@@ -47,20 +46,23 @@ def test_get_cells_coords(tmp_path: Path) -> None:
|
|
47
46
|
path = tmp_path / "points"
|
48
47
|
path.write_text(contents)
|
49
48
|
|
50
|
-
|
49
|
+
file = FoamFile(path)
|
50
|
+
|
51
|
+
points = file[None]
|
52
|
+
assert isinstance(points, list)
|
51
53
|
|
52
|
-
assert points[
|
53
|
-
assert points[
|
54
|
-
assert points[
|
55
|
-
assert points[
|
56
|
-
assert points[
|
57
|
-
assert points[
|
58
|
-
assert points[
|
59
|
-
assert points[
|
60
|
-
assert points[
|
61
|
-
assert points[
|
54
|
+
assert points[0] == [0, 0, 0]
|
55
|
+
assert points[1] == [0.15707963268, 0, 0]
|
56
|
+
assert points[2] == [0.314159265359, 0, 0]
|
57
|
+
assert points[3] == [0.471238898038, 0, 0]
|
58
|
+
assert points[4] == [0.628318530718, 0, 0]
|
59
|
+
assert points[5] == [0, 0, 0]
|
60
|
+
assert points[6] == [0.15707963268, 0, 0]
|
61
|
+
assert points[7] == [0.314159265359, 0, 0]
|
62
|
+
assert points[8] == [0.471238898038, 0, 0]
|
63
|
+
assert points[9] == [0.628318530718, 0, 0]
|
62
64
|
|
63
|
-
assert len(points
|
65
|
+
assert len(points) == 10
|
64
66
|
|
65
|
-
assert list(
|
66
|
-
assert "FoamFile" in
|
67
|
+
assert list(file) == [None]
|
68
|
+
assert "FoamFile" in file
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|