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.