susumu.yata
null+****@clear*****
Fri Jul 24 23:59:23 JST 2015
susumu.yata 2015-07-24 23:59:23 +0900 (Fri, 24 Jul 2015) New Revision: e043aeba90b96bee7f39f5ede225ecdc7b5b548f https://github.com/groonga/grngo/commit/e043aeba90b96bee7f39f5ede225ecdc7b5b548f Message: Add a test for table reference vector. Modified files: grngo_test.go Modified: grngo_test.go (+54 -0) =================================================================== --- grngo_test.go 2015-07-24 23:49:19 +0900 (d1959c6) +++ grngo_test.go 2015-07-24 23:59:23 +0900 (061f294) @@ -1252,6 +1252,60 @@ func TestRef(t *testing.T) { } } +func TestRefs(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) + } + for i := 0; i < 100; i++ { + key := []byte(strconv.Itoa(i)) + if _, _, err := table.InsertRow(key); err != nil { + t.Fatalf("Table.InsertRow() failed: %v", err) + } + } + column, err := table.CreateColumn("Ref", "[]Table", nil) + for i := 0; i < 100; i++ { + id := uint32(i + 1) + value := [][]byte{ + []byte(strconv.Itoa((i + 1) % 100)), + []byte(strconv.Itoa((i + 2) % 100)), + []byte(strconv.Itoa((i + 3) % 100)), + } + if err := column.SetValue(id, value); err != nil { + t.Fatalf("Column.SetValue() failed: %v", err) + } + storedValue, err := column.GetValue(id) + if err != nil { + t.Fatalf("Column.GetValue() failed: %v", err) + } + if !reflect.DeepEqual(value, storedValue) { + t.Fatalf("Column.GetValue() failed: value = %v, storedValue = %v", + value, storedValue) + } + } + column, err = table.FindColumn("Ref._key") + for i := 0; i < 100; i++ { + id := uint32(i + 1) + value := [][]byte{ + []byte(strconv.Itoa((i + 1) % 100)), + []byte(strconv.Itoa((i + 2) % 100)), + []byte(strconv.Itoa((i + 3) % 100)), + } + storedValue, err := column.GetValue(id) + if err != nil { + t.Fatalf("Column.GetValue() failed: %v", err) + } + if !reflect.DeepEqual(value, storedValue) { + t.Fatalf("Column.GetValue() failed: value = %v, storedValue = %v", + value, storedValue) + } + } +} + // Benchmarks. var numTestRows = 100000 -------------- next part -------------- HTML����������������������������...Download