[Groonga-commit] groonga/grngo at 7638535 [master] Test combinations of _key and _value.

Back to archive index

susumu.yata null+****@clear*****
Wed Jul 29 22:17:03 JST 2015


susumu.yata	2015-07-29 22:17:03 +0900 (Wed, 29 Jul 2015)

  New Revision: 76385352f53f25a93dc5467c385e0bb90a87eae4
  https://github.com/groonga/grngo/commit/76385352f53f25a93dc5467c385e0bb90a87eae4

  Message:
    Test combinations of _key and _value.

  Modified files:
    grngo_test.go

  Modified: grngo_test.go (+62 -0)
===================================================================
--- grngo_test.go    2015-07-29 22:07:38 +0900 (3c43481)
+++ grngo_test.go    2015-07-29 22:17:03 +0900 (9a0a448)
@@ -395,6 +395,68 @@ func TestValue(t *testing.T) {
 	}
 }
 
+func TestKeyValue(t *testing.T) {
+	dirPath, _, db := createTempDB(t)
+	defer removeTempDB(t, dirPath, db)
+
+	keyTypes := []string{
+		"Bool", "Int8", "Int16", "Int32", "Int64", "UInt8", "UInt16", "UInt32",
+		"UInt64", "Float", "Time", "ShortText", "TokyoGeoPoint", "WGS84GeoPoint",
+	}
+	valueTypes := []string{
+		"Bool", "Int8", "Int16", "Int32", "Int64", "UInt8", "UInt16", "UInt32",
+		"UInt64", "Float", "Time", "TokyoGeoPoint", "WGS84GeoPoint",
+	}
+	for _, keyType := range keyTypes {
+		for _, valueType := range valueTypes {
+			t.Logf("keyType = %s, valueType = %s", keyType, valueType)
+			options := NewTableOptions()
+			options.KeyType = keyType
+			options.ValueType = valueType
+			table, err := db.CreateTable("Table", options)
+			if err != nil {
+				t.Fatalf("DB.CreateTable() failed: %v", err)
+			}
+			keyColumn, err := table.FindColumn("_key")
+			if err != nil {
+				t.Fatalf("Table.FindColumn() failed: %v", err)
+			}
+			valueColumn, err := table.FindColumn("_value")
+			if err != nil {
+				t.Fatalf("Table.FindColumn() failed: %v", err)
+			}
+			for i := 0; i < 100; i++ {
+				key := generateRandomKey(keyType)
+				_, id, err := table.InsertRow(key)
+				if err != nil {
+					t.Fatalf("Table.InsertRow() failed: %v", err)
+				}
+				storedKey, err := keyColumn.GetValue(id)
+				if err != nil {
+					t.Fatalf("Column.GetValue() failed: %v", err)
+				}
+				if !reflect.DeepEqual(key, storedKey) {
+					t.Fatalf("DeepEqual() failed")
+				}
+				value := generateRandomValue(valueType)
+				if err := valueColumn.SetValue(id, value); err != nil {
+					t.Fatalf("Column.SetValue() failed: %v", err)
+				}
+				storedValue, err := valueColumn.GetValue(id)
+				if err != nil {
+					t.Fatalf("Column.GetValue() failed: %v", err)
+				}
+				if !reflect.DeepEqual(value, storedValue) {
+					t.Fatalf("DeepEqual() failed")
+				}
+			}
+			if _, err := db.Query("table_remove Table"); err != nil {
+				t.Logf("DB.Query() failed: %v", err)
+			}
+		}
+	}
+}
+
 func testDBCreateTableWithRefKey(t *testing.T, keyType string) {
 	options := NewTableOptions()
 	options.KeyType = keyType
-------------- next part --------------
HTML����������������������������...
Download 



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