rroonga 9.0.2 → 10.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.yardopts +1 -0
- data/Rakefile +9 -142
- data/doc/text/news.md +73 -1
- data/doc/text/tutorial.md +1 -1
- data/ext/groonga/extconf.rb +9 -74
- data/ext/groonga/rb-grn-context.c +27 -0
- data/ext/groonga/rb-grn-expression-builder.c +3 -3
- data/ext/groonga/rb-grn-flushable.c +7 -0
- data/ext/groonga/rb-grn-index-column.c +28 -0
- data/ext/groonga/rb-grn-index-cursor.c +19 -0
- data/ext/groonga/rb-grn-logger.c +17 -3
- data/ext/groonga/rb-grn-object.c +236 -22
- data/ext/groonga/rb-grn-table-key-support.c +26 -7
- data/ext/groonga/rb-grn-table.c +119 -87
- data/ext/groonga/rb-grn-type.c +5 -1
- data/ext/groonga/rb-grn-utils.c +17 -1
- data/ext/groonga/rb-grn.h +7 -13
- data/ext/groonga/rb-groonga.c +2 -2
- data/lib/groonga.rb +3 -7
- data/lib/groonga/dumper.rb +3 -0
- data/lib/groonga/record.rb +2 -2
- data/rroonga.gemspec +4 -5
- data/test/groonga-test-utils.rb +34 -5
- data/test/run-test.rb +1 -3
- data/test/test-accessor.rb +63 -7
- data/test/test-column.rb +12 -1
- data/test/test-context.rb +25 -0
- data/test/test-exception.rb +5 -0
- data/test/test-flushable.rb +51 -6
- data/test/test-index-column.rb +67 -6
- data/test/test-index-cursor.rb +26 -0
- data/test/test-logger.rb +56 -11
- data/test/test-plugin.rb +1 -0
- data/test/test-query-logger.rb +4 -3
- data/test/test-record.rb +2 -1
- data/test/test-remote.rb +56 -10
- data/test/test-schema-dumper.rb +13 -0
- data/test/test-schema.rb +9 -1
- data/test/test-table-arrow.rb +1 -1
- data/test/test-table.rb +21 -1
- data/test/test-variable.rb +23 -7
- metadata +65 -106
data/ext/groonga/rb-grn-type.c
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
/* -*- coding: utf-8; mode: C; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
2
2
|
/*
|
3
|
-
Copyright (C) 2009-
|
3
|
+
Copyright (C) 2009-2020 Sutou Kouhei <kou@clear-code.com>
|
4
4
|
|
5
5
|
This library is free software; you can redistribute it and/or
|
6
6
|
modify it under the terms of the GNU Lesser General Public
|
@@ -304,6 +304,10 @@ rb_grn_init_type (VALUE mGrn)
|
|
304
304
|
rb_define_const(rb_cGrnType, "INT64", INT2NUM(GRN_DB_INT64));
|
305
305
|
/* 64bit符号なし整数。 */
|
306
306
|
rb_define_const(rb_cGrnType, "UINT64", INT2NUM(GRN_DB_UINT64));
|
307
|
+
#if RB_GRN_HAVE_FLOAT32
|
308
|
+
/* 32bit floating pointer number in IEEE754 format. */
|
309
|
+
rb_define_const(rb_cGrnType, "FLOAT32", INT2NUM(GRN_DB_FLOAT32));
|
310
|
+
#endif
|
307
311
|
/* ieee754形式の64bit浮動小数点数。 */
|
308
312
|
rb_define_const(rb_cGrnType, "FLOAT", INT2NUM(GRN_DB_FLOAT));
|
309
313
|
/* 1970年1月1日0時0分0秒からの経過マイクロ秒数を64bit符
|
data/ext/groonga/rb-grn-utils.c
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
/* -*- mode: C; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
2
2
|
/* vim: set sts=4 sw=4 ts=8 noet: */
|
3
3
|
/*
|
4
|
-
Copyright (C) 2009-
|
4
|
+
Copyright (C) 2009-2020 Sutou Kouhei <kou@clear-code.com>
|
5
5
|
|
6
6
|
This library is free software; you can redistribute it and/or
|
7
7
|
modify it under the terms of the GNU Lesser General Public
|
@@ -201,6 +201,11 @@ rb_grn_bulk_to_ruby_object_by_range_id (grn_ctx *context, grn_obj *bulk,
|
|
201
201
|
case GRN_DB_UINT64:
|
202
202
|
*rb_value = ULL2NUM(GRN_UINT64_VALUE(bulk));
|
203
203
|
break;
|
204
|
+
#if RB_GRN_HAVE_FLOAT32
|
205
|
+
case GRN_DB_FLOAT32:
|
206
|
+
*rb_value = rb_float_new(GRN_FLOAT32_VALUE(bulk));
|
207
|
+
break;
|
208
|
+
#endif
|
204
209
|
case GRN_DB_FLOAT:
|
205
210
|
*rb_value = rb_float_new(GRN_FLOAT_VALUE(bulk));
|
206
211
|
break;
|
@@ -447,6 +452,7 @@ rb_grn_bulk_from_ruby_object_with_type (VALUE object, grn_ctx *context,
|
|
447
452
|
int64_t int64_value;
|
448
453
|
uint64_t uint64_value;
|
449
454
|
int64_t time_value;
|
455
|
+
float float_value;
|
450
456
|
double double_value;
|
451
457
|
grn_geo_point geo_point_value;
|
452
458
|
grn_id record_id;
|
@@ -525,6 +531,16 @@ rb_grn_bulk_from_ruby_object_with_type (VALUE object, grn_ctx *context,
|
|
525
531
|
string = (const char *)&(value.uint64_value);
|
526
532
|
size = sizeof(value.uint64_value);
|
527
533
|
break;
|
534
|
+
#if RB_GRN_HAVE_FLOAT32
|
535
|
+
case GRN_DB_FLOAT32:
|
536
|
+
if (string_p) {
|
537
|
+
object = rb_Float(object);
|
538
|
+
}
|
539
|
+
value.float_value = NUM2DBL(object);
|
540
|
+
string = (const char *)&(value.float_value);
|
541
|
+
size = sizeof(value.float_value);
|
542
|
+
break;
|
543
|
+
#endif
|
528
544
|
case GRN_DB_FLOAT:
|
529
545
|
if (string_p) {
|
530
546
|
object = rb_Float(object);
|
data/ext/groonga/rb-grn.h
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
/* -*- coding: utf-8; mode: C; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
2
2
|
/*
|
3
|
-
Copyright (C) 2009-
|
3
|
+
Copyright (C) 2009-2020 Sutou Kouhei <kou@clear-code.com>
|
4
4
|
Copyright (C) 2015-2017 Masafumi Yokoyama <yokoyama@clear-code.com>
|
5
5
|
|
6
6
|
This library is free software; you can redistribute it and/or
|
@@ -73,17 +73,9 @@ RB_GRN_BEGIN_DECLS
|
|
73
73
|
# define RB_GRN_GNUC_NULL_TERMINATED
|
74
74
|
#endif
|
75
75
|
|
76
|
-
#
|
77
|
-
# define RB_GRN_PLATFORM_WIN32 RUBY_GRN_PLATFORM_WIN32
|
78
|
-
#endif
|
79
|
-
|
80
|
-
#if defined(RUBY_GRN_STATIC_COMPILATION) && !defined(RB_GRN_STATIC_COMPILATION)
|
81
|
-
# define RB_GRN_STATIC_COMPILATION RUBY_GRN_STATIC_COMPILATION
|
82
|
-
#endif
|
83
|
-
|
84
|
-
#if defined(RB_GRN_PLATFORM_WIN32) && !defined(RB_GRN_STATIC_COMPILATION)
|
76
|
+
#ifdef __WIN32__
|
85
77
|
# ifdef RB_GRN_COMPILATION
|
86
|
-
# define RB_GRN_VAR __declspec(dllexport)
|
78
|
+
# define RB_GRN_VAR extern __declspec(dllexport)
|
87
79
|
# else
|
88
80
|
# define RB_GRN_VAR extern __declspec(dllimport)
|
89
81
|
# endif
|
@@ -97,9 +89,11 @@ RB_GRN_BEGIN_DECLS
|
|
97
89
|
# define debug(...)
|
98
90
|
#endif
|
99
91
|
|
100
|
-
#define
|
92
|
+
#define RB_GRN_HAVE_FLOAT32 GRN_VERSION_OR_LATER(10, 0, 2)
|
93
|
+
|
94
|
+
#define RB_GRN_MAJOR_VERSION 10
|
101
95
|
#define RB_GRN_MINOR_VERSION 0
|
102
|
-
#define RB_GRN_MICRO_VERSION
|
96
|
+
#define RB_GRN_MICRO_VERSION 6
|
103
97
|
|
104
98
|
#define RB_GRN_OBJECT(object) ((RbGrnObject *)(object))
|
105
99
|
#define RB_GRN_NAMED_OBJECT(object) ((RbGrnNamedObject *)(object))
|
data/ext/groonga/rb-groonga.c
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
/* -*- coding: utf-8; mode: C; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
2
2
|
/*
|
3
|
-
Copyright (C) 2009-
|
3
|
+
Copyright (C) 2009-2020 Sutou Kouhei <kou@clear-code.com>
|
4
4
|
Copyright (C) 2016 Masafumi Yokoyama <yokoyama@clear-code.com>
|
5
5
|
|
6
6
|
This library is free software; you can redistribute it and/or
|
@@ -22,7 +22,7 @@
|
|
22
22
|
grn_bool rb_grn_exited = GRN_FALSE;
|
23
23
|
|
24
24
|
static VALUE
|
25
|
-
finish_groonga (
|
25
|
+
finish_groonga (RB_BLOCK_CALL_FUNC_ARGLIST(yielded_arg, callback_arg))
|
26
26
|
{
|
27
27
|
debug("finish\n");
|
28
28
|
grn_fin();
|
data/lib/groonga.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2009-
|
1
|
+
# Copyright (C) 2009-2020 Sutou Kouhei <kou@clear-code.com>
|
2
2
|
#
|
3
3
|
# This library is free software; you can redistribute it and/or
|
4
4
|
# modify it under the terms of the GNU Lesser General Public
|
@@ -44,12 +44,8 @@ require "groonga/record"
|
|
44
44
|
require "groonga/expression-builder"
|
45
45
|
require "groonga/posting"
|
46
46
|
require "groonga/index"
|
47
|
-
|
48
|
-
|
49
|
-
require "#{major}.#{minor}/groonga.so"
|
50
|
-
rescue LoadError
|
51
|
-
require "groonga.so"
|
52
|
-
end
|
47
|
+
|
48
|
+
require "groonga.so"
|
53
49
|
|
54
50
|
##
|
55
51
|
# rroonga用のネームスペース。rroongaのクラスやメソッ
|
data/lib/groonga/dumper.rb
CHANGED
@@ -491,6 +491,8 @@ module Groonga
|
|
491
491
|
options[:size] = :small
|
492
492
|
elsif column.medium?
|
493
493
|
options[:size] = :medium
|
494
|
+
elsif column.large?
|
495
|
+
options[:size] = :large
|
494
496
|
end
|
495
497
|
arguments = [
|
496
498
|
dump_object(target_table_name),
|
@@ -652,6 +654,7 @@ module Groonga
|
|
652
654
|
flags << "WITH_POSITION" if column.with_position?
|
653
655
|
flags << "INDEX_SMALL" if column.small?
|
654
656
|
flags << "INDEX_MEDIUM" if column.medium?
|
657
|
+
flags << "INDEX_LARGE" if column.large?
|
655
658
|
parameters << "#{flags.join('|')}"
|
656
659
|
parameters << "#{column.range.name}"
|
657
660
|
source_names = column.sources.collect do |source|
|
data/lib/groonga/record.rb
CHANGED
@@ -205,10 +205,10 @@ module Groonga
|
|
205
205
|
self["_score"] = new_score
|
206
206
|
end
|
207
207
|
|
208
|
-
# {Groonga::Record#score} が利用できる場合は
|
208
|
+
# {Groonga::Record#score} が利用できる場合は `true` を
|
209
209
|
# 返す。
|
210
210
|
def support_score?
|
211
|
-
@table.
|
211
|
+
@table.support_score?
|
212
212
|
end
|
213
213
|
|
214
214
|
# 主キーの値が同一であったレコードの件数を返す。検索結果とし
|
data/rroonga.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
# -*-
|
1
|
+
# -*- ruby -*-
|
2
2
|
#
|
3
|
-
# Copyright (C) 2012-
|
3
|
+
# Copyright (C) 2012-2020 Sutou Kouhei <kou@clear-code.com>
|
4
4
|
# Copyright (C) 2017 Masafumi Yokoyama <yokoyama@clear-code.com>
|
5
5
|
#
|
6
6
|
# This library is free software; you can redistribute it and/or
|
@@ -85,14 +85,13 @@ Gem::Specification.new do |s|
|
|
85
85
|
s.add_runtime_dependency("pkg-config")
|
86
86
|
s.add_runtime_dependency("groonga-client", ">= 0.0.3")
|
87
87
|
s.add_runtime_dependency("json")
|
88
|
-
s.add_runtime_dependency("archive-zip")
|
89
88
|
s.add_development_dependency("test-unit", [">= 3.0.0"])
|
90
89
|
s.add_development_dependency("rake")
|
91
|
-
s.add_development_dependency("rake-compiler", [">= 0.9.5"])
|
92
|
-
s.add_development_dependency("rake-compiler-dock", [">= 0.6.2"])
|
93
90
|
s.add_development_dependency("bundler")
|
94
91
|
s.add_development_dependency("yard")
|
95
92
|
s.add_development_dependency("packnga", [">= 1.0.0"])
|
96
93
|
s.add_development_dependency("kramdown")
|
94
|
+
|
95
|
+
s.metadata["msys2_mingw_dependencies"] = "groonga>=10.0.1"
|
97
96
|
end
|
98
97
|
|
data/test/groonga-test-utils.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# Copyright (C) 2015 Masafumi Yokoyama <yokoyama@clear-code.com>
|
2
|
-
# Copyright (C) 2009-
|
2
|
+
# Copyright (C) 2009-2019 Kouhei Sutou <kou@clear-code.com>
|
3
3
|
#
|
4
4
|
# This library is free software; you can redistribute it and/or
|
5
5
|
# modify it under the terms of the GNU Lesser General Public
|
@@ -14,13 +14,16 @@
|
|
14
14
|
# License along with this library; if not, write to the Free Software
|
15
15
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
16
16
|
|
17
|
+
require "erb"
|
17
18
|
require "fileutils"
|
19
|
+
require "json"
|
18
20
|
require "pathname"
|
21
|
+
require "stringio"
|
19
22
|
require "tempfile"
|
20
23
|
require "time"
|
21
|
-
require "
|
22
|
-
|
23
|
-
require "
|
24
|
+
require "timeout"
|
25
|
+
|
26
|
+
require "groonga/client"
|
24
27
|
require "pkg-config"
|
25
28
|
|
26
29
|
require "groonga"
|
@@ -44,7 +47,7 @@ module GroongaTestUtils
|
|
44
47
|
setup_context
|
45
48
|
|
46
49
|
@database = nil
|
47
|
-
name_for_path = name
|
50
|
+
name_for_path = escape_path(name)
|
48
51
|
@database_path = @tmp_dir + "#{name_for_path}.db"
|
49
52
|
end
|
50
53
|
|
@@ -69,9 +72,11 @@ module GroongaTestUtils
|
|
69
72
|
|
70
73
|
@log_path = @tmp_dir + "groonga.log"
|
71
74
|
Groonga::Logger.path = @log_path.to_s
|
75
|
+
Groonga::Logger.reopen
|
72
76
|
|
73
77
|
@query_log_path = @tmp_dir + "groonga-query.log"
|
74
78
|
Groonga::QueryLogger.path = @query_log_path.to_s
|
79
|
+
Groonga::QueryLogger.reopen
|
75
80
|
end
|
76
81
|
|
77
82
|
def setup_tables_directory
|
@@ -107,6 +112,14 @@ module GroongaTestUtils
|
|
107
112
|
end
|
108
113
|
end
|
109
114
|
|
115
|
+
def collect_query_log
|
116
|
+
@query_log_path.open do |file|
|
117
|
+
file.seek(0, IO::SEEK_END)
|
118
|
+
yield
|
119
|
+
file.read
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
110
123
|
def setup_database
|
111
124
|
@database = Groonga::Database.create(:path => @database_path.to_s)
|
112
125
|
end
|
@@ -155,6 +168,12 @@ module GroongaTestUtils
|
|
155
168
|
actual.expression.inspect)
|
156
169
|
end
|
157
170
|
|
171
|
+
def escape_path(path)
|
172
|
+
path.gsub(/[: ?!\(\)\[\]]/) do
|
173
|
+
"_"
|
174
|
+
end
|
175
|
+
end
|
176
|
+
|
158
177
|
def linux?
|
159
178
|
/linux/ =~ RUBY_PLATFORM
|
160
179
|
end
|
@@ -167,6 +186,10 @@ module GroongaTestUtils
|
|
167
186
|
/cygwin|mingw|mswin/ === RUBY_PLATFORM
|
168
187
|
end
|
169
188
|
|
189
|
+
def only_not_windows
|
190
|
+
omit("This test is only for non Windows system.") if windows?
|
191
|
+
end
|
192
|
+
|
170
193
|
def support_self_recursive_equal?
|
171
194
|
self_recursive_hash1 = {}
|
172
195
|
self_recursive_hash1["next"] = self_recursive_hash1
|
@@ -186,4 +209,10 @@ module GroongaTestUtils
|
|
186
209
|
def check_mecab_availability
|
187
210
|
omit("MeCab isn't available") if context["TokenMecab"].nil?
|
188
211
|
end
|
212
|
+
|
213
|
+
def need_groonga(major, minor, micro)
|
214
|
+
if (Groonga::BUILD_VERSION[0, 3] <=> [major, minor, micro]) < 0
|
215
|
+
omit("Groonga #{major}.#{minor}.#{micro} or later is required")
|
216
|
+
end
|
217
|
+
end
|
189
218
|
end
|
data/test/run-test.rb
CHANGED
@@ -17,8 +17,6 @@
|
|
17
17
|
|
18
18
|
$VERBOSE = true
|
19
19
|
|
20
|
-
$KCODE = "u" if RUBY_VERSION < "1.9"
|
21
|
-
|
22
20
|
base_dir = File.expand_path(File.join(File.dirname(__FILE__), ".."))
|
23
21
|
ext_dir = File.join(base_dir, "ext", "groonga")
|
24
22
|
lib_dir = File.join(base_dir, "lib")
|
@@ -39,7 +37,7 @@ end
|
|
39
37
|
require "test-unit"
|
40
38
|
require "test/unit/priority"
|
41
39
|
|
42
|
-
Test::Unit::Priority.enable
|
40
|
+
Test::Unit::Priority.enable unless ENV["CI"]
|
43
41
|
|
44
42
|
|
45
43
|
groonga_command_dir = File.join(base_dir, "..", "groonga-command")
|
data/test/test-accessor.rb
CHANGED
@@ -19,12 +19,13 @@ class AccessorTest < Test::Unit::TestCase
|
|
19
19
|
|
20
20
|
def setup
|
21
21
|
setup_database
|
22
|
-
@posts = Groonga::Hash.create(:name => "Posts",
|
22
|
+
@posts = Groonga::Hash.create(:name => "Posts",
|
23
|
+
:key_type => "ShortText",
|
24
|
+
:value_type => "UInt32")
|
25
|
+
@grouped_posts = @posts.group("_key")
|
23
26
|
@id = @posts.column("_id")
|
24
|
-
|
25
|
-
|
26
|
-
def teardown
|
27
|
-
@id = nil
|
27
|
+
@key = @posts.column("_key")
|
28
|
+
@value = @posts.column("_value")
|
28
29
|
end
|
29
30
|
|
30
31
|
def test_name
|
@@ -51,9 +52,8 @@ class AccessorTest < Test::Unit::TestCase
|
|
51
52
|
|
52
53
|
sub_test_case "#key_accessor?" do
|
53
54
|
test "true" do
|
54
|
-
key = @posts.column("_key")
|
55
55
|
assert do
|
56
|
-
key.key_accessor?
|
56
|
+
@key.key_accessor?
|
57
57
|
end
|
58
58
|
end
|
59
59
|
|
@@ -63,4 +63,60 @@ class AccessorTest < Test::Unit::TestCase
|
|
63
63
|
end
|
64
64
|
end
|
65
65
|
end
|
66
|
+
|
67
|
+
sub_test_case "#id_accessor?" do
|
68
|
+
test "true" do
|
69
|
+
assert do
|
70
|
+
@id.id_accessor?
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
test "false" do
|
75
|
+
assert do
|
76
|
+
not @key.id_accessor?
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
sub_test_case "#value_accessor?" do
|
82
|
+
test "true" do
|
83
|
+
assert do
|
84
|
+
@value.value_accessor?
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
test "false" do
|
89
|
+
assert do
|
90
|
+
not @key.value_accessor?
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
sub_test_case "#score_accessor?" do
|
96
|
+
test "true" do
|
97
|
+
assert do
|
98
|
+
@posts.select.column("_score").score_accessor?
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
test "false" do
|
103
|
+
assert do
|
104
|
+
not @key.score_accessor?
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
sub_test_case "#n_sub_records_accessor?" do
|
110
|
+
test "true" do
|
111
|
+
assert do
|
112
|
+
@grouped_posts.column("_nsubrecs").n_sub_records_accessor?
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
test "false" do
|
117
|
+
assert do
|
118
|
+
not @key.n_sub_records_accessor?
|
119
|
+
end
|
120
|
+
end
|
121
|
+
end
|
66
122
|
end
|
data/test/test-column.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2009-
|
1
|
+
# Copyright (C) 2009-2020 Sutou Kouhei <kou@clear-code.com>
|
2
2
|
# Copyright (C) 2016 Masafumi Yokoyama <yokoyama@clear-code.com>
|
3
3
|
#
|
4
4
|
# This library is free software; you can redistribute it and/or
|
@@ -307,6 +307,17 @@ class ColumnTest < Test::Unit::TestCase
|
|
307
307
|
assert_false(post["hidden"])
|
308
308
|
end
|
309
309
|
|
310
|
+
def test_float32
|
311
|
+
need_groonga(10, 0, 2)
|
312
|
+
|
313
|
+
numbers = Groonga::Array.create(:name => "Numbers")
|
314
|
+
numbers.define_column("data", "Float32")
|
315
|
+
|
316
|
+
number = numbers.add
|
317
|
+
number["data"] = 1.1
|
318
|
+
assert_in_delta(1.1, number["data"])
|
319
|
+
end
|
320
|
+
|
310
321
|
def test_indexes
|
311
322
|
Groonga::Schema.define do |schema|
|
312
323
|
schema.create_table("Comments") do |table|
|
data/test/test-context.rb
CHANGED
@@ -132,6 +132,31 @@ class ContextTest < Test::Unit::TestCase
|
|
132
132
|
assert_equal(-1, context.match_escalation_threshold)
|
133
133
|
end
|
134
134
|
|
135
|
+
sub_test_case("#force_match_escalation?") do
|
136
|
+
def setup
|
137
|
+
default_force_match_escalation = context.force_match_escalation?
|
138
|
+
begin
|
139
|
+
yield
|
140
|
+
ensure
|
141
|
+
context.force_match_escalation = default_force_match_escalation
|
142
|
+
end
|
143
|
+
end
|
144
|
+
|
145
|
+
def test_true
|
146
|
+
context.force_match_escalation = true
|
147
|
+
assert do
|
148
|
+
context.force_match_escalation?
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
152
|
+
def test_false
|
153
|
+
context.force_match_escalation = false
|
154
|
+
assert do
|
155
|
+
not context.force_match_escalation?
|
156
|
+
end
|
157
|
+
end
|
158
|
+
end
|
159
|
+
|
135
160
|
def test_close
|
136
161
|
context = Groonga::Context.new
|
137
162
|
assert_false(context.closed?)
|