Susumu Yata
null+****@clear*****
Thu Sep 14 16:37:55 JST 2017
Susumu Yata 2017-09-14 16:37:55 +0900 (Thu, 14 Sep 2017) New Revision: c67e8672c6903022b49a273de92e0222b2e5591d https://github.com/groonga/grnci/commit/c67e8672c6903022b49a273de92e0222b2e5591d Message: Add tests for DB.TableCreate. Ref: #39 Modified files: v2/libgrn/db_test.go Modified: v2/libgrn/db_test.go (+152 -0) =================================================================== --- v2/libgrn/db_test.go 2017-09-14 15:56:26 +0900 (6675d08) +++ v2/libgrn/db_test.go 2017-09-14 16:37:55 +0900 (b533522) @@ -1462,6 +1462,158 @@ table_create Tbl2 TABLE_PAT_KEY ShortText` } } +func TestDBTableCreate(t *testing.T) { + db, dir := makeDB(t) + defer removeDB(db, dir) + + if err := db.TableCreate("Tbl", nil); err != nil { + t.Fatalf("db.TableCreate failed: %v", err) + } + if ok, err := db.ObjectExist("Tbl"); !ok { + t.Fatalf("db.ObjectExist failed: %v", err) + } +} + +func TestDBTableCreatePat(t *testing.T) { + db, dir := makeDB(t) + defer removeDB(db, dir) + + flags := [][]string{ + []string{"TABLE_PAT_KEY"}, + []string{"TABLE_PAT_KEY", "KEY_WITH_SIS"}, + } + keyTypes := []string{ + "Bool", "Int8", "Int16", "Int32", "Int64", "UInt8", "UInt16", + "UInt32", "UInt64", "Time", "Float", "ShortText", "TokyoGeoPoint", + "WGS84GeoPoint", + } + valueTypes := []string{ + "", "Bool", "Int8", "Int16", "Int32", "Int64", "UInt8", "UInt16", + "UInt32", "UInt64", "Time", "Float", "TokyoGeoPoint", "WGS84GeoPoint", + } + for _, flags := range flags { + for _, keyType := range keyTypes { + for _, valueType := range valueTypes { + options := grnci.NewDBTableCreateOptions() + options.Flags = flags + options.KeyType = keyType + options.ValueType = valueType + if err := db.TableCreate("Tbl", options); err != nil { + t.Fatalf("db.TableCreate failed: %v", err) + } + if err := db.TableRemove("Tbl", false); err != nil { + t.Fatalf("db.TableRemove failed: %v", err) + } + } + } + } +} + +func TestDBTableCreateHash(t *testing.T) { + db, dir := makeDB(t) + defer removeDB(db, dir) + + flags := [][]string{ + []string{"TABLE_HASH_KEY"}, + []string{"TABLE_HASH_KEY", "KEY_LARGE"}, + } + keyTypes := []string{ + "Bool", "Int8", "Int16", "Int32", "Int64", "UInt8", "UInt16", + "UInt32", "UInt64", "Time", "Float", "ShortText", "TokyoGeoPoint", + "WGS84GeoPoint", + } + valueTypes := []string{ + "", "Bool", "Int8", "Int16", "Int32", "Int64", "UInt8", "UInt16", + "UInt32", "UInt64", "Time", "Float", "TokyoGeoPoint", "WGS84GeoPoint", + } + for _, flags := range flags { + for _, keyType := range keyTypes { + for _, valueType := range valueTypes { + options := grnci.NewDBTableCreateOptions() + options.Flags = flags + options.KeyType = keyType + options.ValueType = valueType + if err := db.TableCreate("Tbl", options); err != nil { + t.Fatalf("db.TableCreate failed: %v", err) + } + if err := db.TableRemove("Tbl", false); err != nil { + t.Fatalf("db.TableRemove failed: %v", err) + } + } + } + } +} + +func TestDBTableCreateDat(t *testing.T) { + db, dir := makeDB(t) + defer removeDB(db, dir) + + options := grnci.NewDBTableCreateOptions() + options.Flags = []string{"TABLE_DAT_KEY"} + options.KeyType = "ShortText" + if err := db.TableCreate("Tbl", options); err != nil { + t.Fatalf("db.TableCreate failed: %v", err) + } + if err := db.TableRemove("Tbl", false); err != nil { + t.Fatalf("db.TableRemove failed: %v", err) + } +} + +func TestDBTableCreateIndex(t *testing.T) { + db, dir := makeDB(t) + defer removeDB(db, dir) + + defaultTokenizers := []string{ + "TokenBigram", + "TokenBigramSplitSymbol", + "TokenBigramSplitSymbolAlpha", + "TokenBigramSplitSymbolAlphaDigit", + "TokenBigramIgnoreBlank", + "TokenBigramIgnoreBlankSplitSymbol", + "TokenBigramIgnoreBlankSplitSymbolAlpha", + "TokenBigramIgnoreBlankSplitSymbolAlphaDigit", + "TokenUnigram", + "TokenTrigram", + "TokenDelimit", + "TokenDelimitNull", + "TokenRegexp", + } + if ok, _ := db.ObjectExist("TokenMecab"); ok { + defaultTokenizers = append(defaultTokenizers, "TokenMecab") + } + if ok, _ := db.ObjectExist("TokenKytea"); ok { + defaultTokenizers = append(defaultTokenizers, "TokenKytea") + } + normalizers := []string{ + "", "NormalizerAuto", + } + tokenFilters := []string{""} + if err := db.PluginRegister("token_filters/stop_word"); err == nil { + tokenFilters = append(tokenFilters, "TokenFilterStopWord") + } + if err := db.PluginRegister("token_filters/stem"); err == nil { + tokenFilters = append(tokenFilters, "TokenFilterStem") + } + for _, defaultTokenizer := range defaultTokenizers { + for _, normalizer := range normalizers { + for _, tokenFilter := range tokenFilters { + options := grnci.NewDBTableCreateOptions() + options.Flags = []string{"TABLE_PAT_KEY"} + options.KeyType = "ShortText" + options.DefaultTokenizer = defaultTokenizer + options.Normalizer = normalizer + options.TokenFilters = []string{tokenFilter} + if err := db.TableCreate("Tbl", options); err != nil { + t.Fatalf("db.TableCreate failed: %v", err) + } + if err := db.TableRemove("Tbl", false); err != nil { + t.Fatalf("db.TableRemove failed: %v", err) + } + } + } + } +} + func TestDBTableList(t *testing.T) { db, dir := makeDB(t) defer removeDB(db, dir) -------------- next part -------------- HTML����������������������������... URL: https://lists.osdn.me/mailman/archives/groonga-commit/attachments/20170914/de156437/attachment-0001.htm