From: Ian Jackson Date: Sat, 13 Mar 2021 19:32:00 +0000 (+0000) Subject: hidden: consistency_check: More X-Git-Tag: otter-0.4.0~100 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=f72a95b1b5cdd3febeed3e3d6771a4dc03827af3;p=otter.git hidden: consistency_check: More Signed-off-by: Ian Jackson --- diff --git a/src/hidden.rs b/src/hidden.rs index becb1083..4cfa1a27 100644 --- a/src/hidden.rs +++ b/src/hidden.rs @@ -529,6 +529,28 @@ mod vpid { assert_eq!(occ.notches.table[notch], NR::Piece(piece)); } } + + for (occid, occ) in goccults.occults.iter() { + let ogpc = gpieces.get(occ.occulter).unwrap(); + assert_eq!(ogpc.occult.active, Some(occid)); + assert_eq!(occ.notches.table.len(), occ.notches.zg.len()); + let nfree1 = occ.notches.table.iter() + .filter(|nr| nr.piece().is_none()).count(); + let mut walk = occ.notches.freelist; + let mut nfree2 = 0; + while let Some(here) = walk { + nfree2 += 1; + let next = match occ.notches.table[here] { + NR::Free(next) => next, + NR::Piece(_) => panic!(), + }; + if let Some(next) = next { + assert!(next > here); + } + walk = next; + } + assert_eq!(nfree1, nfree2); + } } }