def test_prv_pub(self):
    tests = [{'seed': bytes.fromhex('000102030405060708090a0b0c0d0e0f'), 'paths': [['m', 'EXAMPLE_KEY', 'EXAMPLE_KEY'], ["m/0'", 'EXAMPLE_KEY', 'EXAMPLE_KEY'], ["m/0'/1", 'EXAMPLE_KEY', 'EXAMPLE_KEY'], ["m/0'/1/2'", 'EXAMPLE_KEY', 'EXAMPLE_KEY'], ["m/0'/1/2'/2", 'EXAMPLE_KEY', 'EXAMPLE_KEY'], ["m/0'/1/2'/2/1000000000", 'EXAMPLE_KEY', 'EXAMPLE_KEY']]}, {'seed': bytes.fromhex('EXAMPLE_KEY'), 'paths': [['m', 'EXAMPLE_KEY', 'EXAMPLE_KEY'], ['m/0', 'EXAMPLE_KEY', 'EXAMPLE_KEY'], ["m/0/2147483647'", 'EXAMPLE_KEY', 'EXAMPLE_KEY'], ["m/0/2147483647'/1", 'EXAMPLE_KEY', 'EXAMPLE_KEY'], ["m/0/2147483647'/1/2147483646'", 'EXAMPLE_KEY', 'EXAMPLE_KEY'], ["m/0/2147483647'/1/2147483646'/2", 'EXAMPLE_KEY', 'EXAMPLE_KEY']]}, {'seed': bytes.fromhex('4b381541583be4423346c643850da4b320e46a87ae3d2a4e6da11eba819cd4acba45d239319ac14f863b8d5ab5a0d0c64d2e8a1e7d1457df2e5a3c51c73235be'), 'paths': [['m', 'EXAMPLE_KEY', 'EXAMPLE_KEY'], ["m/0'", 'EXAMPLE_KEY', 'EXAMPLE_KEY']]}]
    for test in tests:
        seed = test['seed']
        for (path, xpub, xprv) in test['paths']:
            private_key = HDPrivateKey.from_seed(seed).traverse(path)
            public_key = HDPublicKey.parse(xpub)
            self.assertEqual(private_key.xprv(), xprv)
            self.assertEqual(private_key.xpub(), public_key.xpub())
            self.assertEqual(private_key.address(), public_key.address())
def test_prv_pub(self):
    tests = [{'seed': bytes.fromhex('000102030405060708090a0b0c0d0e0f'), 'paths': [['m', 'EXAMPLE_KEY', 'EXAMPLE_KEY'], ["m/0'", 'EXAMPLE_KEY', 'EXAMPLE_KEY'], ["m/0'/1", 'EXAMPLE_KEY', 'EXAMPLE_KEY'], ["m/0'/1/2'", 'EXAMPLE_KEY', 'EXAMPLE_KEY'], ["m/0'/1/2'/2", 'EXAMPLE_KEY', 'EXAMPLE_KEY'], ["m/0'/1/2'/2/1000000000", 'EXAMPLE_KEY', 'EXAMPLE_KEY']]}, {'seed': bytes.fromhex('EXAMPLE_KEY'), 'paths': [['m', 'EXAMPLE_KEY', 'EXAMPLE_KEY'], ['m/0', 'EXAMPLE_KEY', 'EXAMPLE_KEY'], ["m/0/2147483647'", 'EXAMPLE_KEY', 'EXAMPLE_KEY'], ["m/0/2147483647'/1", 'EXAMPLE_KEY', 'EXAMPLE_KEY'], ["m/0/2147483647'/1/2147483646'", 'EXAMPLE_KEY', 'EXAMPLE_KEY'], ["m/0/2147483647'/1/2147483646'/2", 'EXAMPLE_KEY', 'EXAMPLE_KEY']]}, {'seed': bytes.fromhex('4b381541583be4423346c643850da4b320e46a87ae3d2a4e6da11eba819cd4acba45d239319ac14f863b8d5ab5a0d0c64d2e8a1e7d1457df2e5a3c51c73235be'), 'paths': [['m', 'EXAMPLE_KEY', 'EXAMPLE_KEY'], ["m/0'", 'EXAMPLE_KEY', 'EXAMPLE_KEY']]}]
    for test in tests:
        seed = test['seed']
        for (path, xpub, xprv) in test['paths']:
            private_key = HDPrivateKey.from_seed(seed).traverse(path)
            public_key = HDPublicKey.parse(xpub)
            self.assertEqual(private_key.xprv(), xprv)
            self.assertEqual(private_key.xpub(), public_key.xpub())
            self.assertEqual(private_key.address(), public_key.address())