46 lines
1.4 KiB
Python
46 lines
1.4 KiB
Python
import numpy as np
|
|
import pytest
|
|
from tests.node_tests._shared import make_field
|
|
from backend.nodes.helpers import bool_to_mask
|
|
|
|
|
|
def test_grain_distributions_area():
|
|
from backend.nodes.grain_distributions import GrainDistributions
|
|
|
|
node = GrainDistributions()
|
|
data = np.zeros((64, 64))
|
|
data[10:20, 10:20] = 1.0
|
|
data[40:50, 40:50] = 1.0
|
|
mask = np.zeros((64, 64), dtype=bool)
|
|
mask[10:20, 10:20] = True
|
|
mask[40:50, 40:50] = True
|
|
field = make_field(data=data)
|
|
dist, = node.process(field, bool_to_mask(mask), "area", 10, 5)
|
|
assert hasattr(dist, 'data')
|
|
assert len(dist.data) == 10 # n_bins
|
|
|
|
|
|
def test_grain_distributions_height():
|
|
from backend.nodes.grain_distributions import GrainDistributions
|
|
|
|
node = GrainDistributions()
|
|
data = np.zeros((32, 32))
|
|
data[5:15, 5:15] = 2.0
|
|
data[20:28, 20:28] = 5.0
|
|
mask = np.zeros((32, 32), dtype=bool)
|
|
mask[5:15, 5:15] = True
|
|
mask[20:28, 20:28] = True
|
|
field = make_field(data=data)
|
|
dist, = node.process(field, bool_to_mask(mask), "mean_height", 10, 5)
|
|
assert len(dist.data) == 10
|
|
|
|
|
|
def test_grain_distributions_no_grains():
|
|
from backend.nodes.grain_distributions import GrainDistributions
|
|
|
|
node = GrainDistributions()
|
|
field = make_field(shape=(32, 32))
|
|
mask = bool_to_mask(np.zeros((32, 32), dtype=bool))
|
|
dist, = node.process(field, mask, "area", 10, 5)
|
|
assert hasattr(dist, 'data')
|