def T(confidential_addr, expected_bytes, unconfidential_addr,
       expected_blinding_pubkey, expected_class):
     a = CCoinAddress(confidential_addr)
     self.assertIsInstance(a, expected_class)
     self.assertEqual(a.to_bytes(), expected_bytes)
     self.assertEqual(unconfidential_addr, a.to_unconfidential())
     self.assertEqual(
         confidential_addr,
         str(a.__class__.from_unconfidential(
             unconfidential_addr, a.blinding_pubkey)))
     self.assertEqual(expected_blinding_pubkey, a.blinding_pubkey)
     a2 = CCoinConfidentialAddress(str(a))
     self.assertEqual(a, a2)
     a2 = CCoinConfidentialAddress.from_unconfidential(unconfidential_addr,
                                                       a.blinding_pubkey)
     self.assertEqual(a, a2)
 def T(confidential_addr: str, expected_bytes: bytes,
       unconfidential_addr: CCoinAddress,
       expected_blinding_pubkey: bytes, expected_class: type) -> None:
     a = CCoinAddress(confidential_addr)
     assert isinstance(a, CCoinConfidentialAddress)
     self.assertIsInstance(a, expected_class)
     self.assertEqual(bytes(a), expected_bytes)
     self.assertEqual(unconfidential_addr, a.to_unconfidential())
     self.assertEqual(
         confidential_addr,
         str(
             a.__class__.from_unconfidential(unconfidential_addr,
                                             a.blinding_pubkey)))
     self.assertEqual(expected_blinding_pubkey, a.blinding_pubkey)
     a2 = CCoinConfidentialAddress(str(a))
     self.assertEqual(a, a2)
     a2 = CCoinConfidentialAddress.from_unconfidential(
         unconfidential_addr, a.blinding_pubkey)
     self.assertEqual(a, a2)