def METHOD_NAME(self):
    info = Info()
    system = DeleteListenerSystem(info.record_deletion)
    builder = DiagramBuilder()
    # `system` is now owned by `builder`.
    builder.AddSystem(system)
    # `system` is now owned by `diagram`.
    diagram = builder.Build()
    # Delete the builder. Should still be alive.
    del builder
    self.assertFalse(info.deleted)
    # Delete the diagram. Should be dead.
    del diagram
    # Using `py::keep_alive`, `system` will keep `builder` alive after
    # `.AddSystem` is called, and `builder` will keep `diagram` alive after
    # `.Build` is called.
    # Transitively, `system` will keep `builder` alive (as its old owner)
    # and `diagram` (as its new owner, which is kept alive by `builder`).
    self.assertFalse(info.deleted)
    self.assertTrue(system is not None)
    del system
    # Upon removing this reference, everything should have been cleared up.
    # However, since we work around #14355 by inducing a keep_alive cycle,
    # it will not be deleted.
    self.assertFalse(info.deleted)