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

Back to archive index

susumu.yata null+****@clear*****
Fri Jul 24 23:49:19 JST 2015


susumu.yata	2015-07-24 23:49:19 +0900 (Fri, 24 Jul 2015)

  New Revision: 8282274e8112209f971b7b326a838783ad3dc4cb
  https://github.com/groonga/grngo/commit/8282274e8112209f971b7b326a838783ad3dc4cb

  Message:
    Add a test for table reference.

  Modified files:
    grngo_test.go

  Modified: grngo_test.go (+59 -0)
===================================================================
--- grngo_test.go    2015-07-24 20:07:17 +0900 (edf1ae8)
+++ grngo_test.go    2015-07-24 23:49:19 +0900 (d1959c6)
@@ -1193,6 +1193,65 @@ func TestColumnGetValueForWGS84GeoPointVector(t *testing.T) {
 	testColumnGetValue(t, "[]WGS84GeoPoint")
 }
 
+func TestRef(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(strconv.Itoa((i + 1) % 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(strconv.Itoa((i + 1) % 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)
+		}
+	}
+	column, err = table.FindColumn("Ref.Ref.Ref")
+	for i := 0; i < 100; i++ {
+		id := uint32(i + 1)
+		value := []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