### Question:
MapsTokenScanner { public List<Map<String, String>> scanMaps() { skipWhiteSpace(); List<Map<String, String>> maps = new ArrayList<>(); while (hasNext()) { maps.add(scanMap()); } return maps; } MapsTokenScanner(String input); static String toTokenString(List<Map<String, List<String>>> maps); List<Map<String, String>> scanMaps(); List<Map<String, List<String>>> scanMultiValueMaps();  }### Answer:
@Test void testScanMaps() { assertThat(new MapsTokenScanner("f[b]").scanMaps()) .isEqualTo(List.of(Map.of("f", "b"))); assertThat(new MapsTokenScanner("foo bar[baz,qux ]").scanMaps()) .isEqualTo(List.of(Map.of("foo bar", "baz,qux "))); assertThat(new MapsTokenScanner(" foo[bar] baz[qux] ").scanMaps()) .isEqualTo(List.of(Map.of("foo", "bar", "baz", "qux"))); assertThat(new MapsTokenScanner(" foo[bar] baz[qux], quux[corge] ").scanMaps()) .isEqualTo(List.of(Map.of("foo", "bar", "baz", "qux"), Map.of("quux", "corge"))); assertThat(new MapsTokenScanner(" foo[bar] baz[qux] , quux[corge] ").scanMaps()) .isEqualTo(List.of(Map.of("foo", "bar", "baz", "qux"), Map.of("quux", "corge"))); }