### Question:
ScriptPattern { public static boolean isP2PKH(Script script) { List<ScriptChunk> chunks = script.chunks; if (chunks.size() != 5) return false; if (!chunks.get(0).equalsOpCode(OP_DUP)) return false; if (!chunks.get(1).equalsOpCode(OP_HASH160)) return false; byte[] chunk2data = chunks.get(2).data; if (chunk2data == null) return false; if (chunk2data.length != LegacyAddress.LENGTH) return false; if (!chunks.get(3).equalsOpCode(OP_EQUALVERIFY)) return false; if (!chunks.get(4).equalsOpCode(OP_CHECKSIG)) return false; return true; }  static boolean isP2PKH(Script script); static byte[] extractHashFromP2PKH(Script script); static boolean isP2SH(Script script); static byte[] extractHashFromP2SH(Script script); static boolean isP2PK(Script script); static byte[] extractKeyFromP2PK(Script script); static boolean isP2WH(Script script); static boolean isP2WPKH(Script script); static boolean isP2WSH(Script script); static byte[] extractHashFromP2WH(Script script); static boolean isSentToMultisig(Script script); static boolean isOpReturn(Script script); static boolean isWitnessCommitment(Script script); static Sha256Hash extractWitnessCommitmentHash(Script script); static boolean isOpCreate(Script script); static boolean isOpCall(Script script); static boolean isContract(Script script); static long extractGasLimit(Script script); static long extractGasPrice(Script script);  }### Answer:
@Test public void testCreateP2PKHOutputScript() { assertTrue(ScriptPattern.isP2PKH( ScriptBuilder.createP2PKHOutputScript(keys.get(0)) )); }