assert condition, "message" does nothing when the condition is true and raises AssertionError with your message when it's false. A test is a function that calls your code with known inputs and asserts the results.
A good test is a small story: one input, one expected answer. A useful set of tests covers the normal case and the edge cases: empty input, a boundary value, bad input that should raise an error.
Compare floats with a tolerance, math.isclose(a, b) or round(a, 2) == b; 0.1 + 0.2 == 0.3 is False.
The unittest module organizes tests as methods of a TestCase class, with helpers such as self.assertEqual(a, b), self.assertAlmostEqual(a, b) and with self.assertRaises(ValueError):.
In these exercises, your tests are run against a correct version of the function, where they must pass, and against buggy versions, where they must fail. Tests that pass on broken code don't protect you.