Source code for yt.utilities.answer_testing.level_sets_tests
import numpy as np
from numpy.testing import assert_equal
from yt.utilities.answer_testing.framework import AnswerTestingTest
[docs]
class ExtractConnectedSetsTest(AnswerTestingTest):
_type_name = "ExtractConnectedSets"
_attrs = ()
def __init__(self, ds_fn, data_source, field, num_levels, min_val, max_val):
super().__init__(ds_fn)
self.data_source = data_source
self.field = field
self.num_levels = num_levels
self.min_val = min_val
self.max_val = max_val
[docs]
def run(self):
n, all_sets = self.data_source.extract_connected_sets(
self.field, self.num_levels, self.min_val, self.max_val
)
result = []
for level in all_sets:
for set_id in all_sets[level]:
result.append(
[
all_sets[level][set_id]["cell_mass"].size,
all_sets[level][set_id]["cell_mass"].sum(),
]
)
result = np.array(result)
return result
[docs]
def compare(self, new_result, old_result):
err_msg = f"Size and/or mass of connected sets do not agree for {self.ds_fn}."
assert_equal(new_result, old_result, err_msg=err_msg, verbose=True)