석태경 - doortts/rftr GitHub Wiki
package practice02.comments;
public class Matcher {
public Matcher() {}
public boolean match(int[] expected, int[] actual,
int clipLimit, int delta)
{
// 배열내에 들어갈 수 있는 최대값을 정한다.
clip_array(actual, clipLimit);
// 두 배열의 길이가 같은지를 비교
boolean array_length_check_success = is_same_length_array(actual, expected);
if(array_length_check_success == false){
return false;
}
// 배열의 각 값이 +/- delta 값 안에 들어가 있는지를 비교한다.
boolean delta_check_result = is_delta_check_ok(expected, actual, delta);
return delta_check_result;
}
private void clip_array(int [] actual, int clip_limit){
for (int i = 0; i < actual.length; i++){
actual[i] = clip(actual[i], clip_limit);
}
} // End of clip_array()
private int clip(int data, int clip_limit){
if(data > clip_limit){
return clip_limit;
}
else{
return data;
}
} // End of clip()
private boolean is_same_length_array(int [] a, int [] b){
if(a.length != b.length){
return false;
}
else{
return true;
}
} // End of is_same_length_array()
private boolean is_delta_check_ok(int [] expected, int [] actual, int delta){
for (int i = 0; i < actual.length; i++) {
if (Math.abs(expected[i] - actual[i]) > delta)
return false;
}
return true;
} // End of is_delta_check_ok()
}
```