@@ -181,6 +182,8 @@ class NestedBlockState(object):
def__consistency_check(self,op,l):
print("consistency check after",op,"at level",l)
forjinrange(len(self.levels)):
c_state=self.levels[j].copy()
...
...
@@ -234,6 +237,19 @@ class NestedBlockState(object):
assertself.levels[j].B==self.levels[j+1].N,"inconsistency at level %d after %s of level %d, different sizes"%(j+1,op,l)
# verify hierarchy / clabel consistency
clabel=self.__project_partition(0,j)
self.levels[0].clabel.a=self.clabel.a
assertself.levels[0]._BlockState__check_clabel(),"inconsistency at level %d after %s of level %d, clabel invalidated"%(j+1,op,l)
self.levels[0].clabel.a=0
# verify hierarchy consistency
clabel=self.__project_partition(j,j+1)
self.levels[0].clabel.a=self.clabel.a
assertself.levels[0]._BlockState__check_clabel(),"inconsistency at level %d after %s of level %d, partition not compatible with upper level"%(j+1,op,l)
self.levels[0].clabel.a=0
def__rebuild_level(self,l,b,clabel=None):
r"""Replace level ``l`` given the new partition ``b``, and the
projected upper level partition clabel."""
...
...
@@ -258,8 +274,11 @@ class NestedBlockState(object):