def circularPageReferenceTest(self, shouldBeInvalid): cppView1 = CumulusNative.PersistentCacheIndex( self.sharedState.newView(), callbackScheduler) computationId = CumulusNative.ComputationId.Root(sha1("computation")) checkpointRequest = CumulusNative.CheckpointRequest( 0.0, True, computationId) cppView1.addBigvec(sha1("bigvec1"), HashSet() + sha1("page1"), 2, sha1("")) cppView1.addPage( sha1("page1"), (HashSet() + sha1("bigvec1")) if shouldBeInvalid else HashSet(), 1, sha1("")) cppView1.addCheckpointFile(checkpointRequest, sha1("file"), HashSet() + sha1("bigvec1"), 2, sha1("")) cppView1.addCheckpoint(checkpointRequest, HashSet() + sha1("file"), 2, sha1(""), True, 1.0, HashSet()) self.assertTrue( len(cppView1.computeInvalidObjects()) == (4 if shouldBeInvalid else 0), "%s != %s" % (len(cppView1.computeInvalidObjects()), (4 if shouldBeInvalid else 0)))