From 49ea1de34b4c1befececa488e0ac7d91c1848fcb Mon Sep 17 00:00:00 2001 From: BigAdam2005 Date: Tue, 17 Jul 2018 16:07:32 +0200 Subject: [PATCH] LegacyAddressTest: Extend test dataset and move it to a classpath resource. --- .../org/bitcoinj/core/LegacyAddressTest.java | 26 ++++++++------- .../core/LegacyAddressTestDataset.txt | 32 +++++++++++++++++++ 2 files changed, 47 insertions(+), 11 deletions(-) create mode 100644 core/src/test/resources/org/bitcoinj/core/LegacyAddressTestDataset.txt diff --git a/core/src/test/java/org/bitcoinj/core/LegacyAddressTest.java b/core/src/test/java/org/bitcoinj/core/LegacyAddressTest.java index 178b6890..f6b10777 100644 --- a/core/src/test/java/org/bitcoinj/core/LegacyAddressTest.java +++ b/core/src/test/java/org/bitcoinj/core/LegacyAddressTest.java @@ -26,8 +26,10 @@ import org.bitcoinj.script.ScriptPattern; import org.bitcoinj.script.Script.ScriptType; import org.junit.Test; +import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; +import java.io.InputStreamReader; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.util.Arrays; @@ -68,7 +70,7 @@ public class LegacyAddressTest { assertEquals("17kzeh4N8g49GFvdDzSf8PjaPfyoD1MndL", b.toString()); assertEquals(ScriptType.P2PKH, a.getOutputScriptType()); } - + @Test public void decoding() throws Exception { LegacyAddress a = LegacyAddress.fromBase58(TESTNET, "n4eA2nbYqErp7H6jebchxAN59DmNpksexv"); @@ -77,7 +79,7 @@ public class LegacyAddressTest { LegacyAddress b = LegacyAddress.fromBase58(MAINNET, "17kzeh4N8g49GFvdDzSf8PjaPfyoD1MndL"); assertEquals("4a22c3c4cbb31e4d03b15550636762bda0baf85a", Utils.HEX.encode(b.getHash())); } - + @Test public void errorPaths() { // Check what happens if we try and decode garbage. @@ -146,7 +148,7 @@ public class LegacyAddressTest { fail(); } catch (AddressFormatException e) { } } - + @Test public void p2shAddress() throws Exception { // Test that we can construct P2SH addresses @@ -244,13 +246,15 @@ public class LegacyAddressTest { @Test public void comparisonBytesVsString() throws Exception { - // TODO: To properly test this we need a much larger data set - LegacyAddress a = LegacyAddress.fromBase58(MAINNET, "1Dorian4RoXcnBv9hnQ4Y2C1an6NJ4UrjX"); - LegacyAddress b = LegacyAddress.fromBase58(MAINNET, "1EXoDusjGwvnjZUyKkxZ4UHEf77z6A5S4P"); - - int resultBytes = a.compareTo(b); - int resultsString = a.toString().compareTo(b.toString()); - assertTrue( resultBytes < 0 ); - assertTrue( resultsString < 0 ); + BufferedReader dataSetReader = new BufferedReader( + new InputStreamReader(getClass().getResourceAsStream("LegacyAddressTestDataset.txt"))); + String line; + while ((line = dataSetReader.readLine()) != null) { + String addr[] = line.split(","); + LegacyAddress first = LegacyAddress.fromBase58(MAINNET, addr[0]); + LegacyAddress second = LegacyAddress.fromBase58(MAINNET, addr[1]); + assertTrue(first.compareTo(second) < 0); + assertTrue(first.toString().compareTo(second.toString()) < 0); + } } } diff --git a/core/src/test/resources/org/bitcoinj/core/LegacyAddressTestDataset.txt b/core/src/test/resources/org/bitcoinj/core/LegacyAddressTestDataset.txt new file mode 100644 index 00000000..bbd92efb --- /dev/null +++ b/core/src/test/resources/org/bitcoinj/core/LegacyAddressTestDataset.txt @@ -0,0 +1,32 @@ +1Dorian4RoXcnBv9hnQ4Y2C1an6NJ4UrjX,1EXoDusjGwvnjZUyKkxZ4UHEf77z6A5S4P +12prgkB2jumVVh1iSQaSLqroe81RyaqkyR,1ArPkmHt15fYrNJ8br7GYVduZiugtSfAC8 +13G22VU8uXCsmh2PZ8Vh8CnWUtkz1mpDnY,1QJ3i7HhMX9ymKNJU8szirD57VyCUop8rv +1CK6KHY6MHgYvmRQ4PAafKYDrg1ejbH1cE,1DWsmHpyELq51pYUxCjBjwBpt4yyXfEjif +1CTC2u5B6DhBe8LkaSnZvxNeScrBByYiFv,1H1hGnwaQed7JPPqYgfYR2HqLyGfMnMZ92 +1GFpf1cAgCneQrLHn1AWL95FXZ3196gLbi,1L59Gh2FUk6bsG7t7LzGuti3PwMT6vKDta +12vnBzWDDuftQYqjSbiYMuT66KmAGsXYYE,1PLtsSnkabRETVYRvyFUSAKTHbtL7FZvgY +19pH85mQvmLn45xFj3K3or3EaijUjMy4xj,1PsqoEpNo9Yb2PNpc4PbfhQuHzxz1JCK34 +1BPuMoYqgE3kYL76qAF6SrL2nJMtyKCbcM,1KpJZ9Q6tj2yegQAzLUmmov72d1pATE9Uu +1C1mCxRukix1KfegAY5zQQJV7samAciZpv,1Cudf98s16kW7152TwVsidYPhrPiYwLmJR +1J962fubMgq1YNGdT7EVMY91A1ULh9s9Ji,1QA74FEhzhLi23pVZjGQ2yWSGaep2Go5pq +12i7xva6bNNovaXW9a869w4Chze9VnvZjN,1PuoxiYCmsady21q6DSCNpwdNDQs1yujcG +16fFb8vPAQ4RPjtAfkQdHMpoTognrnTzs7,1KMVb5vJqD1ceQSHqUczFHHTVmm1v9rCEH +19frvQBjDhYnv9qjsC6YQs9nxfPCuFRsFe,1MTxMFJtCPuLHmnG7Ecef28su5DPxbaep5 +17XrM9u3Edkh1PR8GpX5kfNZLn1JmrxGH7,1LfzzJ5EGpR81sxcbHVkcNvVsSDt6ZFJsz +1Ke11ARCEN6ynFtPdrTdFPGs1LQ4ukugDi,1Nv9scQTGdijZhHsWbbJf3kY1dZZ6sFJ1u +14xLHSd2vLMSSe7RLjUw6xtyLQCVSq8Mpa,1NKLb68QACKUqtGiwSN5W9znW5RZFCnbYV +1BjmkScvLX8kFn9FqtRDn79vfjhxjnW2ap,1EWyYmfyv7PvLz4DsCyWZf1zhavskfJqGG +16vi5dxVZXMRzF9Pt2EHDSMipYeePmQCyJ,1LvCnrgKryx7QEbsaPT9NJb1S8xMi8nWDi +13TdqLm25WgZw5NwjmYfdrRLRfob26GsM5,13apxjFiTBvqQxyFxPk7MCFTzAKgjaX6R4 +1EK7ZHeh13wQG4b3z8wF423xbxT6HydR5i,1JK8voQbxSbGqJ2mShaVVepRKZ6xMvkJk8 +13w8xV2XK5BX3rVLm5avvoAEf1JvBmwF2r,15xgB2X1hj7F2Ek2V3YfajvCrp2PbuSmMC +1K6PRbv68NBzcmMx3PSTms2DNvWjvX5yNg,1KHn81uJcVxcEeFTG5w78i2Pz4dtkeD78c +1AerGGVb9byLp1WK4r88f9wwGeM5YFQyfz,1Fn9WHnLe2CdA1aZCZbTAYnjzkD7mTL4LT +1ELt4mSqm5hHnQ5k8WQRG75aEdEWCJ1oyc,1F3tWDBPqjPbbCVDJEN3cv3x7hDrbkuXze +144Za3x1HSN4UtAqCP2Ym8xRsXkt95A8AL,1NURJdpmh15ostB6kweuummHRxgyMHWhi6 +1K6PRbv68NBzcmMx3PSTms2DNvWjvX5yNg,1KHn81uJcVxcEeFTG5w78i2Pz4dtkeD78c +1AerGGVb9byLp1WK4r88f9wwGeM5YFQyfz,1Fn9WHnLe2CdA1aZCZbTAYnjzkD7mTL4LT +1ELt4mSqm5hHnQ5k8WQRG75aEdEWCJ1oyc,1F3tWDBPqjPbbCVDJEN3cv3x7hDrbkuXze +144Za3x1HSN4UtAqCP2Ym8xRsXkt95A8AL,1NURJdpmh15ostB6kweuummHRxgyMHWhi6 +14NGL5LYhwkWREpeo2AMWU6HgbDfdqAuZC,1GMyyYHKC3RKqmjixxxoHnsDJ46hBsQbfS +17kuSgebpmoA8kbKQaiaokCBbWnteDtL27,19PUE9SnfhxoCp42eQCmDbWtqrLXat8sh2