| 1 | Create BLOCKLIST policy, check unblocked account | isAuthorized returns true |
| 2 | Add account to blocklist, check | isAuthorized returns false |
| 3 | Remove account from blocklist, check | isAuthorized returns true |
| 4 | Create ALLOWLIST policy, check unlisted account | isAuthorized returns false |
| 5 | isAuthorized with non-existent blocklist-prefixed ID | Returns true |
| 6 | isAuthorized with non-existent allowlist-prefixed ID | Returns false |
| 7 | renounceAdmin, then updateBlocklist | Reverts |
| 8 | finalizeUpdateAdmin from non-pending address | Reverts |
| 9 | isAuthorized(invertedPolicyId(id), account) where base authorizes account | Returns false |
| 10 | isAuthorized(invertedPolicyId(id), account) where base denies account | Returns true |
| 11 | isAuthorized(invertedPolicyId(id), account) where base does not exist | Returns false (fail-closed) |
| 12 | policyExists(invertedPolicyId(id)) where base exists | Returns true |
| 13 | policyExists(invertedPolicyId(id)) where base does not exist | Returns false |
| 14 | policyAdmin(invertedPolicyId(id)) | Returns same address as policyAdmin(id) |
| 15 | pendingPolicyAdmin(invertedPolicyId(id)) | Returns same address as pendingPolicyAdmin(id) |
| 16 | compositePolicyChildIds(invertedPolicyId(id)) where base is composite | Returns same children as base, preserving per-child invert flags |
| 17 | invertedPolicyId(invertedPolicyId(id)) | Returns id |
| 18 | createCompositePolicy with an inverted simple-policy child | Succeeds |
| 19 | createCompositePolicy with an inverted composite child | Reverts with InvalidChildPolicy |
| 20 | INTERSECT composite of policy A and invertedPolicyId(policyB) — account in A but in B | isAuthorized returns false |
| 21 | INTERSECT composite of policy A and invertedPolicyId(policyB) — account in A but not in B | isAuthorized returns true |