void test_default(gconstpointer data) { gdouble yurakucho_latitude = 35.67487; gdouble yurakucho_longitude = 139.76352; gint distance = 3 * 1000; cut_assert_equal_string( "[[[7]," "[[\"name\",\"ShortText\"],[\"_score\",\"Int32\"]," "[\"location\",\"WGS84GeoPoint\"]]," "[\"柳屋 たい焼き\",-2147483648,\"128467228x503222332\"]," "[\"銀座 かずや\",280743810,\"128424629x503139222\"]," "[\"たい焼き鉄次 大丸東京店\",810303031,\"128451283x503166852\"]," "[\"たいやき神田達磨 八重洲店\",970517026,\"128453260x503174156\"]," "[\"にしみや 甘味処\",1056698886,\"128418570x503188661\"]," "[\"築地 さのきや\",1186376492,\"128397312x503174596\"]," "[\"しげ田\",1530425643,\"128421454x503208983\"]" "]]", send_command( cut_take_printf( "select Shops " "--sortby '+_score, +name' " "--output_columns 'name, _score, location' " "--filter 'geo_in_circle(location, \"%s\", %d)%s' " "--scorer " "'_score = geo_distance(location, \"%s\") * 1000 * 1000'", grn_test_location_string(yurakucho_latitude, yurakucho_longitude), distance, gcut_data_get_boolean(data, "use-index") ? "" : " > 0", grn_test_location_string(yurakucho_latitude, yurakucho_longitude)))); }
void test_ellipsoid(gconstpointer data) { gdouble yurakucho_latitude = 35.67487; gdouble yurakucho_longitude = 139.76352; gint distance = 3 * 1000; const gchar *approximate_type; approximate_type = gcut_data_get_string(data, "approximate-type"); cut_assert_equal_string( "[[[7]," "[[\"name\",\"ShortText\"],[\"_score\",\"Int32\"]," "[\"location\",\"WGS84GeoPoint\"]]," "[\"柳屋 たい焼き\",-2147483648,\"128467228x503222332\"]," "[\"銀座 かずや\",281623827,\"128424629x503139222\"]," "[\"たい焼き鉄次 大丸東京店\",811420890,\"128451283x503166852\"]," "[\"たいやき神田達磨 八重洲店\",972359708,\"128453260x503174156\"]," "[\"にしみや 甘味処\",1060891168,\"128418570x503188661\"]," "[\"築地 さのきや\",1187926579,\"128397312x503174596\"]," "[\"しげ田\",1537012099,\"128421454x503208983\"]" "]]", send_command( cut_take_printf( "select Shops " "--sortby '+_score, +name' " "--output_columns 'name, _score, location' " "--filter 'geo_in_circle(location, \"%s\", %d, \"%s\")%s' " "--scorer " "'_score = geo_distance(location, \"%s\", \"%s\") * 1000 * 1000'", grn_test_location_string(yurakucho_latitude, yurakucho_longitude), distance, approximate_type, gcut_data_get_boolean(data, "use-index") ? "" : " > 0", grn_test_location_string(yurakucho_latitude, yurakucho_longitude), approximate_type))); }
static void construct_object(gconstpointer data, grn_builtin_type type, grn_obj *object) { switch (type) { case GRN_DB_VOID: GRN_VOID_INIT(object); break; case GRN_DB_BOOL: GRN_BOOL_INIT(object, 0); GRN_BOOL_SET(&context, object, gcut_data_get_boolean(data, "value")); break; case GRN_DB_INT8: GRN_INT8_INIT(object, 0); GRN_INT8_SET(&context, object, gcut_data_get_int(data, "value")); break; case GRN_DB_UINT8: GRN_UINT8_INIT(object, 0); GRN_UINT8_SET(&context, object, gcut_data_get_uint(data, "value")); break; case GRN_DB_INT16: GRN_INT16_INIT(object, 0); GRN_INT16_SET(&context, object, gcut_data_get_int(data, "value")); break; case GRN_DB_UINT16: GRN_UINT16_INIT(object, 0); GRN_UINT16_SET(&context, object, gcut_data_get_uint(data, "value")); break; case GRN_DB_INT32: GRN_INT32_INIT(object, 0); GRN_INT32_SET(&context, object, gcut_data_get_int(data, "value")); break; case GRN_DB_UINT32: GRN_UINT32_INIT(object, 0); GRN_UINT32_SET(&context, object, gcut_data_get_uint(data, "value")); break; case GRN_DB_INT64: GRN_INT64_INIT(object, 0); GRN_INT64_SET(&context, object, gcut_data_get_int64(data, "value")); break; case GRN_DB_UINT64: GRN_UINT64_INIT(object, 0); GRN_UINT64_SET(&context, object, gcut_data_get_uint64(data, "value")); break; case GRN_DB_FLOAT: GRN_FLOAT_INIT(object, 0); GRN_FLOAT_SET(&context, object, gcut_data_get_double(data, "value")); break; case GRN_DB_TIME: GRN_TIME_INIT(object, 0); GRN_TIME_SET(&context, object, gcut_data_get_int64(data, "value")); break; case GRN_DB_SHORT_TEXT: GRN_SHORT_TEXT_INIT(object, 0); GRN_TEXT_SETS(&context, object, gcut_data_get_string(data, "value")); break; case GRN_DB_TEXT: GRN_TEXT_INIT(object, 0); GRN_TEXT_SETS(&context, object, gcut_data_get_string(data, "value")); break; case GRN_DB_LONG_TEXT: GRN_LONG_TEXT_INIT(object, 0); GRN_TEXT_SETS(&context, object, gcut_data_get_string(data, "value")); break; case GRN_DB_TOKYO_GEO_POINT: GRN_TOKYO_GEO_POINT_INIT(object, 0); GRN_GEO_POINT_SET(&context, object, gcut_data_get_int(data, "latitude"), gcut_data_get_int(data, "longitude")); break; case GRN_DB_WGS84_GEO_POINT: GRN_WGS84_GEO_POINT_INIT(object, 0); GRN_GEO_POINT_SET(&context, object, gcut_data_get_int(data, "latitude"), gcut_data_get_int(data, "longitude")); break; default: cut_fail("unknown type: %d", type); break; } }