595d3d3990da3e71fa5cbf403ffde791e81704f5
3 import java
.util
.Arrays
;
5 public class Eye
implements Comparable
<Eye
> {
7 private List
<String
> colorList
= Arrays
.asList("black", "green", "blue", "brown");
13 public Color
getColor() {
17 public void setColor(String color
) {
18 if (validateColor(color
)) {
20 this.color
= Color
.getColor(color
);
22 this.color
= new Color(88, 41, 0);
24 throw new IllegalArgumentException("Color must be " + colorList
.toString());
28 private boolean validateColor(String color
) {
29 return colorList
.contains(color
);
33 public int compareTo(Eye eye
) {
34 double r_diff
= this.getColor().getRed() - eye
.getColor().getRed();
35 double g_diff
= this.getColor().getGreen() - eye
.getColor().getGreen();
36 double b_diff
= this.getColor().getBlue() - eye
.getColor().getBlue();
37 // See https://en.wikipedia.org/wiki/Color_difference
38 Double distance
= Math
.sqrt(2 * Math
.pow(r_diff
, 2) + 4 * Math
.pow(g_diff
, 2) + 3 * Math
.pow(b_diff
, 2));
39 return distance
.intValue();