a165830f8a1f3cb67354d4c3a97fe48951798c90
3 public class Eye
implements Comparable
<Eye
> {
5 private String
[] colorsList
= {"black", "green", "blue", "brown"};
17 public String
[] getColorsList() {
24 public Color
getColor() {
31 public void setColor(String color
) {
32 if (validateColor(color
)) {
33 if (color
.equals("brown"))
34 this.color
= new Color(88, 41, 0);
36 this.color
= Color
.getColor(color
);
39 throw new IllegalArgumentException("Color must be " + colorsList
);
47 private boolean validateColor(String color
) {
48 for (String c
: colorsList
) {
49 if (color
.equals(c
)) {
61 public int compareTo(Eye eye
) {
62 double r_diff
= this.getColor().getRed() - eye
.getColor().getRed();
63 double g_diff
= this.getColor().getGreen() - eye
.getColor().getGreen();
64 double b_diff
= this.getColor().getBlue() - eye
.getColor().getBlue();
65 // See https://en.wikipedia.org/wiki/Color_difference
66 Double distance
= Math
.sqrt(2 * Math
.pow(r_diff
, 2) + 4 * Math
.pow(g_diff
, 2) + 3 * Math
.pow(b_diff
, 2));
67 return distance
.intValue();