So in the most basic form assertThrown is used to check that our functions throw on bad (user) input, and assertNotThrown is used to check that our functions work with valid input? Looks good to me.