susumu.yata
null+****@clear*****
Wed Jul 29 07:54:42 JST 2015
susumu.yata 2015-07-29 07:54:42 +0900 (Wed, 29 Jul 2015) New Revision: 112f8e34ee3ed32e7572eb6d807daf8a38fe1dd5 https://github.com/groonga/grngo/commit/112f8e34ee3ed32e7572eb6d807daf8a38fe1dd5 Message: Add a test for deep vector. GitHub: #18 Modified files: grngo_test.go Modified: grngo_test.go (+45 -0) =================================================================== --- grngo_test.go 2015-07-29 07:54:01 +0900 (9b37d3f) +++ grngo_test.go 2015-07-29 07:54:42 +0900 (a8e55a9) @@ -1391,6 +1391,51 @@ func TestRefs(t *testing.T) { } } +func TestDeepVector(t *testing.T) { + dirPath, _, db := createTempDB(t) + defer removeTempDB(t, dirPath, db) + options := NewTableOptions() + options.KeyType = "ShortText" + table, err := db.CreateTable("Table", options) + if err != nil { + t.Fatalf("DB.CreateTable() failed: %v", err) + } + var keys [][]byte + keys = append(keys, []byte("ABC")) + keys = append(keys, []byte("DEF")) + keys = append(keys, []byte("GHI")) + for _, key := range keys { + if _, _, err := table.InsertRow(key); err != nil { + t.Fatalf("Table.InsertRow() failed: %v", err) + } + } + column, err := table.CreateColumn("Ref", "[]Table", nil) + var values [][][]byte + values = append(values, [][]byte{ keys[1], keys[2] }) + values = append(values, [][]byte{ keys[2], keys[0] }) + values = append(values, [][]byte{ keys[0], keys[1] }) + for i, value := range values { + if err := column.SetValue(uint32(i + 1), value); err != nil { + t.Fatalf("Column.SetValue() failed: %v", err) + } + } + column, err = table.FindColumn("Ref.Ref") + if err != nil { + t.Fatalf("Table.FindColumn() failed: %v", err) + } + storedValue, err := column.GetValue(uint32(1)) + if err != nil { + t.Fatalf("Column.GetValue() failed: %v", err) + } + var value [][][]byte + value = append(value, values[1]) + value = append(value, values[2]) + if !reflect.DeepEqual(value, storedValue) { + t.Fatalf("Column.GetValue() failed: value = %v, storedValue = %v", + value, storedValue) + } +} + // Benchmarks. var numTestRows = 100000 -------------- next part -------------- HTML����������������������������...Download