[Groonga-commit] groonga/grngo at e043aeb [master] Add a test for table reference vector.

Back to archive index

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 



More information about the Groonga-commit mailing list
Back to archive index