### Question:
TempletonUtils { public static String extractPercentComplete(String line) { Matcher jar = JAR_COMPLETE.matcher(line); if (jar.find()) return jar.group().trim(); Matcher pig = PIG_COMPLETE.matcher(line); if (pig.find()) return pig.group().trim(); return null; }  static boolean isset(String s); static boolean isset(char ch); static boolean isset(T[] a); static boolean isset(Collection<T> col); static boolean isset(Map<K, V> col); static String extractPercentComplete(String line); static String extractChildJobId(String line); static String encodeArray(String[] plain); static String encodeArray(List<String> list); static String[] decodeArray(String s); static String[] hadoopFsListAsArray(String files, Configuration conf,
                                               String user); static String hadoopFsListAsString(String files, Configuration conf,
                                              String user); static String hadoopFsFilename(String fname, Configuration conf, String user); static boolean hadoopFsIsMissing(FileSystem fs, Path p); static Path hadoopFsPath(String fname, Configuration conf, String user); static int fetchUrl(URL url); static Map<String, String> hadoopUserEnv(String user,
                                                    String overrideClasspath); static final Pattern JAR_COMPLETE; static final Pattern PIG_COMPLETE; static final Pattern JAR_ID; static final Pattern PIG_ID; static final Pattern[] ID_PATTERNS; }### Answer:
@Test public void testExtractPercentComplete() { Assert.assertNull(TempletonUtils.extractPercentComplete("fred")); for (String line : CONTROLLER_LINES) Assert.assertNull(TempletonUtils.extractPercentComplete(line)); String fifty = "2011-12-15 18:12:36,333 [main] INFO org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher - 50% complete"; Assert.assertEquals("50% complete", TempletonUtils.extractPercentComplete(fifty)); }