### Question:
ProcFSUtils { protected static ProcPidStat parseProcPidStat(String statLine) throws RuntimeException { String[] splits = statLine.split(" "); if (splits.length < 44) { throw new RuntimeException("Unable to parse stat line: `" + statLine + "` as it is too short"); } try { int pid = Integer.parseInt(splits[0]); long utime = Long.parseLong(splits[13]); long stime = Long.parseLong(splits[14]); long vsize = Long.parseLong(splits[22]); long rss = Long.parseLong(splits[23]); return new ProcPidStat(pid, utime, stime, rss, vsize); } catch (NumberFormatException e) { throw new RuntimeException("Unable to parse stat line: `" + statLine + "`"); } }  static boolean isAvailable(); static int[] getChildrenPids(int rootPid); static ProcPidStat stat(int pid); static ProcPidStat[] stat(int[] pids); static ProcStat stat(); static ProcPidIO io(int pid); static ProcPidIO[] io(int[] pids); static ProcNetIO netio(); static ProcSmaps[] smaps(int[] pids); static ProcSmaps[] smaps(int pid); static final String READ_ONLY_WITH_SHARED_PERMISSION; static final String READ_EXECUTE_WITH_SHARED_PERMISSION; }### Answer:
@Test public void parseProcPidStat() throws Exception { String statLine = "3136 (test) S 3118 3136 3136 1026 3136 4194560 615 341 0 0 34820 24707 0 0 20 0 3 0 5545 205201408 573 18446744073709551615 93841664516096 93841664582996 140721340824240 140721340823440 139997457362109 0 0 4096 81920 0 0 0 17 0 0 0 0 0 0 93841666683496 93841666687240 93841689841664 140721340833027 140721340833098 140721340833098 140721340833756 0"; ProcFSUtils.ProcPidStat stat = ProcFSUtils.parseProcPidStat(statLine); assertEquals(3136, stat.pid); assertEquals(34820L, stat.userTicks); assertEquals(24707L, stat.systemTicks); assertEquals(205201408L, stat.vMemBytes); assertEquals(573L, stat.rssPages); }