make it a failure to not assert anything
new assertion to say the test didn't crash
new check makes asserting dupes optional

these are created when they may not be wanted. asserting on them
is optional
fix multiple assertions to reuse the result object

instead of creating a new one and dealing with the duplicate logic