split node tests into standalone files
This commit is contained in:
35
tests/node_tests/test_grain_analysis.py
Normal file
35
tests/node_tests/test_grain_analysis.py
Normal file
@@ -0,0 +1,35 @@
|
||||
import numpy as np
|
||||
from tests.node_tests._shared import make_field
|
||||
|
||||
|
||||
def test_grain_analysis():
|
||||
from backend.nodes.grain_analysis import GrainAnalysis
|
||||
node = GrainAnalysis()
|
||||
|
||||
N = 64
|
||||
data = np.zeros((N, N))
|
||||
data[5:15, 5:15] = 5.0
|
||||
data[45:53, 45:53] = 3.0
|
||||
field = make_field(data=data, xreal=1e-6, yreal=1e-6)
|
||||
|
||||
mask = np.zeros((N, N), dtype=np.uint8)
|
||||
mask[5:15, 5:15] = 255
|
||||
mask[45:53, 45:53] = 255
|
||||
|
||||
table, = node.process(field, mask=mask, min_size=10)
|
||||
assert len(table) == 2, f"Expected 2 grains, got {len(table)}"
|
||||
|
||||
table.sort(key=lambda r: r["area_px"], reverse=True)
|
||||
assert table[0]["area_px"] == 100
|
||||
assert table[1]["area_px"] == 64
|
||||
assert abs(table[0]["mean_height"] - 5.0) < 1e-10
|
||||
assert abs(table[1]["mean_height"] - 3.0) < 1e-10
|
||||
assert table[0]["area_px_unit"] == "px^2"
|
||||
assert table[0]["area_m2_unit"] == "m^2"
|
||||
assert table[0]["equiv_diam_m_unit"] == "m"
|
||||
assert table[0]["mean_height_unit"] == "m"
|
||||
assert table[0]["max_height_unit"] == "m"
|
||||
|
||||
table_filtered, = node.process(field, mask=mask, min_size=80)
|
||||
assert len(table_filtered) == 1
|
||||
assert table_filtered[0]["area_px"] == 100
|
||||
Reference in New Issue
Block a user