Description:
make .float checker better
Commit status:
[Not Reviewed]
References:
Diff options:
Comments:
0 Commit comments
0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
r239:dbdeebc3336d - - 1 file changed: 13 inserted, 4 deleted
@@ -47,6 +47,11 | |||
|
47 | 47 | |
|
48 | 48 | ########### THIS IS FOR CHECKING FLOAT with EPSILON error ########## |
|
49 | 49 | |
|
50 | + | |
|
51 | + def is_float?(fl) | |
|
52 | + !!Float(fl) rescue false | |
|
53 | + end | |
|
54 | + | |
|
50 | 55 | EPSILON = 0.000001 |
|
51 | 56 | |
|
52 | 57 | out_items = output_file_content.split |
@@ -56,10 +61,14 | |||
|
56 | 61 | report_wrong.call |
|
57 | 62 | else |
|
58 | 63 | out_items.length.times do |i| |
|
59 | - out_value = out_items[i].to_f | |
|
60 |
- |
|
|
61 | - if (out_value - ans_value).abs > EPSILON * [out_value.abs,ans_value.abs].max | |
|
62 | - report_wrong.call | |
|
64 | + if is_float?(out_items[i]) && is_float?(ans_items[i]) | |
|
65 | + out_value = out_items[i].to_f | |
|
66 | + ans_value = ans_items[i].to_f | |
|
67 | + if (out_value - ans_value).abs > EPSILON * [out_value.abs,ans_value.abs].max | |
|
68 | + report_wrong.call | |
|
69 | + end | |
|
70 | + else | |
|
71 | + report_wrong.call if out_items[i] != ans_items[i] | |
|
63 | 72 | end |
|
64 | 73 | end |
|
65 | 74 | report_correct.call |
You need to be logged in to leave comments.
Login now