diff --git a/core/java/com/android/internal/colorextraction/types/Tonal.java b/core/java/com/android/internal/colorextraction/types/Tonal.java index 9b7383fcbe8ac..7b25a0691c406 100644 --- a/core/java/com/android/internal/colorextraction/types/Tonal.java +++ b/core/java/com/android/internal/colorextraction/types/Tonal.java @@ -405,12 +405,13 @@ public class Tonal implements ExtractionType { return v - (float) Math.floor(v); } - static class TonalPalette { - final float[] h; - final float[] s; - final float[] l; - final float minHue; - final float maxHue; + @VisibleForTesting + public static class TonalPalette { + public final float[] h; + public final float[] s; + public final float[] l; + public final float minHue; + public final float maxHue; TonalPalette(float[] h, float[] s, float[] l) { if (h.length != s.length || s.length != l.length) { diff --git a/core/res/res/xml/color_extraction.xml b/core/res/res/xml/color_extraction.xml index 7d52b20f76148..93ab0ff26754e 100644 --- a/core/res/res/xml/color_extraction.xml +++ b/core/res/res/xml/color_extraction.xml @@ -257,52 +257,58 @@ + l="0.2, 0.643"/> + l="0.173, 0.38"/> + l="0.231, 0.48"/> + l="0.15, 0.40"/> + l="0.15, 0.42"/> + + l="0.36, 0.65"/> + + l="0.388, 0.67"/> + l="0.424, 0.58"/> + l="0.37, 0.65"/> + l="0.435, 0.58"/> + l="0.43, 0.641"/> 1); } + @Test + public void tonal_rangeTest() { + Tonal.ConfigParser config = new Tonal.ConfigParser(InstrumentationRegistry.getContext()); + for (Tonal.TonalPalette palette : config.getTonalPalettes()) { + assertTrue("minHue should be >= to 0.", palette.minHue >= 0); + assertTrue("maxHue should be <= to 360.", palette.maxHue <= 360); + + assertTrue("S should be >= to 0.", palette.s[0] >= 0); + assertTrue("S should be <= to 1.", palette.s[1] <= 1); + + assertTrue("L should be >= to 0.", palette.l[0] >= 0); + assertTrue("L should be <= to 1.", palette.l[1] <= 1); + } + } + @Test public void tonal_blacklistTest() { // Make sure that palette generation will fail.