null+****@clear*****
null+****@clear*****
2011年 11月 18日 (金) 16:48:18 JST
Kouhei Sutou 2011-11-18 07:48:18 +0000 (Fri, 18 Nov 2011)
New Revision: 6047a34c9338d450e7f1cd51fe0fb46ae323e5b6
Log:
[geo] enables initial inner check. refs #1173
Modified files:
lib/geo.c
test/unit/core/test-geo-in-rectangle-border.c
Modified: lib/geo.c (+6 -2)
===================================================================
--- lib/geo.c 2011-11-18 07:47:09 +0000 (d4e60d0)
+++ lib/geo.c 2011-11-18 07:48:18 +0000 (a1a7855)
@@ -1082,8 +1082,12 @@ grn_geo_cursor_open_in_rectangle(grn_ctx *ctx,
entry->bottom_included = GRN_TRUE;
entry->left_included = GRN_TRUE;
entry->right_included = GRN_TRUE;
- entry->latitude_inner = GRN_FALSE;
- entry->longitude_inner = GRN_FALSE;
+ entry->latitude_inner =
+ (data.min.latitude == data.bottom_right->latitude &&
+ data.max.latitude == data.top_left->latitude);
+ entry->longitude_inner =
+ (data.min.longitude == data.top_left->longitude &&
+ data.max.longitude == data.bottom_right->longitude);
}
exit :
Modified: test/unit/core/test-geo-in-rectangle-border.c (+24 -0)
===================================================================
--- test/unit/core/test-geo-in-rectangle-border.c 2011-11-18 07:47:09 +0000 (b8c272b)
+++ test/unit/core/test-geo-in-rectangle-border.c 2011-11-18 07:48:18 +0000 (235618b)
@@ -229,6 +229,30 @@ data_cursor_all(void)
8, 7,
7, 8);
+#define ALL_LONGITUDES(latitude) \
+ "(" latitude ",00)", "(" latitude ",01)", \
+ "(" latitude ",02)", "(" latitude ",03)", \
+ "(" latitude ",04)", "(" latitude ",05)", \
+ "(" latitude ",06)", "(" latitude ",07)", \
+ "(" latitude ",08)", "(" latitude ",09)", \
+ "(" latitude ",10)", "(" latitude ",11)", \
+ "(" latitude ",12)", "(" latitude ",13)", \
+ "(" latitude ",14)", "(" latitude ",15)"
+
+ ADD_DATA("all - maximum",
+ gcut_list_string_new(
+ ALL_LONGITUDES("00"), ALL_LONGITUDES("01"), ALL_LONGITUDES("02"),
+ ALL_LONGITUDES("03"), ALL_LONGITUDES("04"), ALL_LONGITUDES("05"),
+ ALL_LONGITUDES("06"), ALL_LONGITUDES("07"), ALL_LONGITUDES("08"),
+ ALL_LONGITUDES("09"), ALL_LONGITUDES("10"), ALL_LONGITUDES("11"),
+ ALL_LONGITUDES("12"), ALL_LONGITUDES("13"), ALL_LONGITUDES("14"),
+ ALL_LONGITUDES("15"),
+ NULL),
+ 15, 0,
+ 0, 15);
+
+#undef ALL_LONGITUDES
+
data_cursor_all_bottom_left();
data_cursor_all_top_left();
data_cursor_all_bottom_right();