def METHOD_NAME(self):
    os = OverloadSelector()
    # unambiguous signatures
    os.append(1, (types.Any, types.Boolean))
    os.append(2, (types.Integer, types.Boolean))
    self.assertEqual(os.find((types.boolean, types.boolean)), 1)
    # not implemented
    with self.assertRaises(NumbaNotImplementedError) as raises:
        os.find((types.boolean, types.int32))
    # generic
    os.append(3, (types.Any, types.Any))
    self.assertEqual(os.find((types.boolean, types.int32)), 3)
    self.assertEqual(os.find((types.boolean, types.boolean)), 1)
    # add ambiguous signature; can match (bool, any) and (any, bool)
    os.append(4, (types.Boolean, types.Any))
    with self.assertRaises(NumbaTypeError) as raises:
        os.find((types.boolean, types.boolean))
    self.assertIn('2 ambiguous signatures', str(raises.exception))
    # disambiguous
    os.append(5, (types.boolean, types.boolean))
    self.assertEqual(os.find((types.boolean, types.boolean)), 5)