@Test @SuppressWarnings("unchecked") public void testXxhdpiFilterRemovesUnneededResources() { Set<Path> xxhdpi = Filters.filterByDensity(candidates, ImmutableSet.of(Density.XXHDPI), false); Iterable<Path> keepPaths = Iterables.concat( paths("dmhx.png", XHDPI), paths("dmh.png", HDPI), paths("dmx.png", XHDPI), paths("dhx.png", XHDPI), paths("hx.png", XHDPI), paths("md.png", MDPI), // drawable-mdpi preferred over drawable. paths("l.png", LDPI), paths("d.png", DRAWABLE), paths("h11.png", HDPI_11), paths("2x.png", XXHDPI), paths("x2x.png", XXHDPI), paths("h3x.png", XXXHDPI), paths("dlmhx2x.png", XXHDPI), paths("dmhx_rx.png", XHDPI, XHDPI_RO), paths("dmhx_fmhx.png", XHDPI, XHDPI_FR), paths("lh2x_flh2x.png", XXHDPI, XXHDPI_FR), paths("mth11_flth.png", TVDPI, HDPI_11, HDPI_FR), paths("fm3x.png", XXXHDPI_FR), paths("lx.png", XHDPI), paths("nine.9.png", XXHDPI)); MoreAsserts.assertSetEquals(pathsToRemove(candidates, Lists.newArrayList(keepPaths)), xxhdpi); }
@Test @SuppressWarnings("unchecked") public void testLdpiMdpiFilterWithDownscale() { Set<Path> lmdpi = Filters.filterByDensity(candidates, ImmutableSet.of(Density.LDPI, Density.MDPI), true); Iterable<Path> keepPaths = Iterables.concat( paths("dmhx.png", MDPI), paths("dmh.png", MDPI), paths("dmx.png", MDPI), paths("dhx.png", DRAWABLE), paths("hx.png", XHDPI), // Downscale XHDPI paths("md.png", MDPI), paths("l.png", LDPI), paths("d.png", DRAWABLE), paths("h11.png", HDPI_11), paths("2x.png", XXHDPI), paths("x2x.png", XXHDPI), paths("h3x.png", XXXHDPI), // Downscale XXXHDPI paths("dlmhx2x.png", LDPI, MDPI), paths("dmhx_rx.png", MDPI, XHDPI_RO), paths("dmhx_fmhx.png", MDPI, MDPI_FR), paths("lh2x_flh2x.png", LDPI, XXHDPI, LDPI_FR, XXHDPI_FR), // Downscale XXHDPI paths("mth11_flth.png", MDPI, HDPI_11, LDPI_FR, HDPI_FR), paths("fm3x.png", MDPI_FR), paths("lx.png", LDPI, XHDPI), paths("nine.9.png", LDPI, XHDPI) /* No downscale */); MoreAsserts.assertSetEquals(pathsToRemove(candidates, Lists.newArrayList(keepPaths)), lmdpi); }
@Test public void testImageDensityFilter() { Set<Path> filesToRemove = Filters.filterByDensity(candidates, ImmutableSet.of(Density.MDPI), false); Predicate<Path> predicate = Filters.createImageDensityFilter(candidates, ImmutableSet.of(Density.MDPI), false); assertFalse(candidates.isEmpty()); for (Path candidate : candidates) { assertEquals(!filesToRemove.contains(candidate), predicate.apply(candidate)); } }