### Question:
ScriptPattern { public static boolean isP2WPKH(Script script) { if (!isP2WH(script)) return false; List<ScriptChunk> chunks = script.chunks; if (!chunks.get(0).equalsOpCode(OP_0)) return false; byte[] chunk1data = chunks.get(1).data; return chunk1data != null && chunk1data.length == SegwitAddress.WITNESS_PROGRAM_LENGTH_PKH; }  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);  }### Answer:
@Test public void testCreateP2WPKHOutputScript() { assertTrue(ScriptPattern.isP2WPKH( ScriptBuilder.createP2WPKHOutputScript(keys.get(0)) )); }