Update unit tests

This commit is contained in:
guillaume 2019-10-31 10:31:47 -04:00
parent 0bd520287d
commit 4754d7fd40
2 changed files with 42 additions and 17 deletions

View file

@ -1012,9 +1012,12 @@ class RectLattice(Lattice):
sub_universe = sub_cell.fill
try:
sub_neighbors = [pattern[0][0], pattern[0][1],
if strategy == "lns":
sub_neighbors = [pattern[0][0], pattern[0][1],
pattern[0][2], pattern[1][0], pattern[1][2],
pattern[2][0], pattern[2][1], pattern[2][2]]
elif strategy == "degenerate":
sub_neighbors = []
sub_universe.discretize(strategy,
rotate_universe_with_neighbors,
universes_to_ignore,
@ -1041,7 +1044,8 @@ class RectLattice(Lattice):
cell.fill = material_clone
# Build a symmetric universe for the transposed lattices
if any(pattern_data['transpositions']):
if rotate_universe_with_neighbors and\
any(pattern_data['transpositions']):
sym_universe = new_universe.clone(clone_materials=False,
clone_regions=False)
for cell_id, sub_cell in sym_universe.cells.items():

View file

@ -52,6 +52,11 @@ def test_discretization_lns(rlat2):
rlat_clone = rlat2.clone()
rlat_clone.discretize(strategy="lns")
assert rlat_clone.get_universe((0, 2)) == rlat_clone.get_universe((2, 2))
rlat_clone = rlat2.clone()
rlat_clone.discretize(strategy="lns", rotate_universe_with_neighbors=True)
assert rlat_clone.get_universe((0, 2)) == \
next(iter(rlat_clone.get_universe((2, 2)).cells.values())).fill
@ -61,15 +66,20 @@ def test_discretization_lns_using_names(rlat2):
rlat_clone = rlat2.clone()
rlat_clone.discretize(strategy="lns", attribute="name")
assert rlat_clone.get_universe((0, 2)) == \
rlat_clone.get_universe((2, 2))
assert rlat_clone.get_universe((0, 2)) == rlat_clone.get_universe((2, 2))
rlat_clone = rlat2.clone()
rlat_clone.get_universe((0, 1)).name="u1"
rlat_clone.get_universe((1, 0)).name="u1"
rlat_clone.discretize(strategy="lns", attribute="name")
assert rlat_clone.get_universe((0, 2)) == \
next(iter(rlat_clone.get_universe((2, 2)).cells.values())).fill
assert rlat_clone.get_universe((0, 2)) == rlat_clone.get_universe((2, 0))
assert rlat_clone.get_universe((2, 2)) == rlat_clone.get_universe((0, 0))
assert rlat_clone.get_universe((0, 2)) == rlat_clone.get_universe((2, 2))
assert rlat_clone.get_universe((1, 2)) == rlat_clone.get_universe((1, 0))
assert rlat_clone.get_universe((2, 1)) == rlat_clone.get_universe((0, 1))
assert rlat_clone.get_universe((1, 2)) == rlat_clone.get_universe((0, 1))
assert rlat_clone.get_universe((0, 0)) != rlat_clone.get_universe((0, 1))
def test_discretization_lns_with_neighbor_list(rlat2):
@ -80,10 +90,8 @@ def test_discretization_lns_with_neighbor_list(rlat2):
rlat_clone.discretize(strategy="lns",
lattice_neighbors=[u1.id,u1.id,u2.id,u1.id,u2.id,u2.id,u1.id,u2.id])
assert rlat_clone.get_universe((0, 1)) == \
next(iter(rlat_clone.get_universe((0, 0)).cells.values())).fill
assert rlat_clone.get_universe((1, 1)) != \
next(iter(rlat_clone.get_universe((0, 0)).cells.values())).fill
assert rlat_clone.get_universe((0, 1)) == rlat_clone.get_universe((0, 0))
assert rlat_clone.get_universe((1, 1)) != rlat_clone.get_universe((0, 0))
def test_discretization_lns_nested_lattices(rlat2):
@ -101,26 +109,39 @@ def test_discretization_lns_nested_lattices(rlat2):
main_lattice.pitch = (20, 20)
main_lattice.universes = [[u1,u1,u1], [u2,u1,u2], [u1,u1,u2]]
main_lattice_clone = main_lattice.clone()
main_lattice.discretize(strategy="lns")
# Both involved a transposition from (2,0) neighbor pattern
assert next(iter(main_lattice.get_universe((0, 0)).cells.values())).fill\
== next(iter(main_lattice.get_universe((2, 2)).cells.values())).fill
assert main_lattice.get_universe((0, 0)) == \
main_lattice.get_universe((2, 2))
# Transposition creates a clone so the two universes cant match
assert main_lattice.get_universe((2, 0)) != \
next(iter(main_lattice.get_universe((2, 2)).cells.values())).fill
main_lattice.get_universe((2, 2))
# Different neighbor pattern
assert main_lattice.get_universe((1, 1)) != \
next(iter(main_lattice.get_universe((0, 0)).cells.values())).fill
main_lattice.get_universe((0, 0))
# Look inside inner lattices
for i in range(3):
for j in range(3):
assert next(iter(main_lattice.get_universe((0, 2)).cells.values())\
).fill.get_universe((i, j)).name == \
next(iter(next(iter(main_lattice.get_universe((2, 2)).cells\
.values())).fill.cells.values())).fill.get_universe((2-j,
2-i)).name
next(iter(main_lattice.get_universe((2, 2)).cells.values(
))).fill.get_universe((i, j)).name
# Test when rotating the sublattices with their neighbors
main_lattice_clone.discretize(strategy="lns",
rotate_universe_with_neighbors=True)
# Look inside inner lattices
for i in range(3):
for j in range(3):
assert next(iter(main_lattice_clone.get_universe((0, 2)
).cells.values())).fill.get_universe((i, j)).name == \
next(iter(next(iter(main_lattice_clone.get_universe((2, 2)
).cells.values())).fill.cells.values())).fill.get_universe(
(2-j, 2-i)).name