null+****@clear*****
null+****@clear*****
2012年 5月 30日 (水) 17:06:22 JST
HAYASHI Kentaro 2012-05-30 17:06:22 +0900 (Wed, 30 May 2012) New Revision: 2a24d30d3fcc305402cf081fd53663da262b5ee8 Log: test: add a method to calculate difference in longitude Modified files: test/function/tools/geo/generate-grntest-data.rb Modified: test/function/tools/geo/generate-grntest-data.rb (+26 -2) =================================================================== --- test/function/tools/geo/generate-grntest-data.rb 2012-05-30 16:10:51 +0900 (b43510d) +++ test/function/tools/geo/generate-grntest-data.rb 2012-05-30 17:06:22 +0900 (5362afc) @@ -218,13 +218,37 @@ class GrnTestData long?(@longitude_start_degree, @longitude_end_degree) ? "long" : "short" end + def diff_in_longitude(start_degree, end_degree) + if start_degree >= 0 + if end_degree >= 0 + if start_degree > end_degree + start_degree - end_degree + else + end_degree - start_degree + end + else + start_degree + end_degree.abs + end + else + if end_degree >= 0 + start_degree.abs + end_degree + else + if start_degree > end_degree + end_degree.abs - start_degree.abs + else + start_degree.abs - end_degree.abs + end + end + end + end + def long?(start_lng_deg, end_lng_deg) - diff_in_longitude = start_lng_deg.abs + end_lng_deg.to_i.abs + longitude_diff = diff_in_longitude(start_lng_deg.to_i, end_lng_deg.to_i) east_to_west = start_lng_deg > 0 and end_lng_deg.to_i < 0 west_to_east = start_lng_deg < 0 and end_lng_deg.to_i > 0 if start_lng_deg != end_lng_deg and (east_to_west or west_to_east) and - diff_in_longitude > 180 + longitude_diff > 180 true else false