### Question:
RankUtils { public static Rank nextLowerLinneanRank(Rank rank) { for (Rank r : Rank.LINNEAN_RANKS) { if (r.ordinal() > rank.ordinal()) { return r; } } return null; }  static Rank nextLowerLinneanRank(Rank rank); static Rank nextHigherLinneanRank(Rank rank); static boolean match(Rank r1, Rank r2);  }### Answer:
@Test public void testNextLowerLinneanRank() throws Exception { assertEquals(Rank.SPECIES, RankUtils.nextLowerLinneanRank(Rank.GENUS)); assertEquals(Rank.GENUS, RankUtils.nextLowerLinneanRank(Rank.SUBFAMILY)); assertEquals(Rank.SPECIES, RankUtils.nextLowerLinneanRank(Rank.SUBGENUS)); assertEquals(Rank.PHYLUM, RankUtils.nextLowerLinneanRank(Rank.KINGDOM)); assertEquals(Rank.KINGDOM, RankUtils.nextLowerLinneanRank(Rank.DOMAIN)); assertEquals(Rank.SPECIES, RankUtils.nextLowerLinneanRank(Rank.INFRAGENERIC_NAME)); assertEquals(null, RankUtils.nextLowerLinneanRank(Rank.INFRASUBSPECIFIC_NAME)); assertEquals(null, RankUtils.nextLowerLinneanRank(Rank.VARIETY)); }