go-ml.dev/pkg/base@v0.0.0-20200610162856-60c38abac71b/tests/rdb_test.go (about) 1 package tests 2 3 import ( 4 "database/sql" 5 _ "github.com/mattn/go-sqlite3" 6 "go-ml.dev/pkg/base/tables/rdb" 7 "gotest.tools/assert" 8 "os" 9 "testing" 10 ) 11 12 func init() { 13 _ = os.Remove("/tmp/go-tables-test.sqlite3") 14 } 15 16 func Test_SQL1(t *testing.T) { 17 var err error 18 q := TrTable() 19 url := "sqlite3:file:/tmp/go-tables-test.sqlite3" 20 err = rdb.Write(url, q, rdb.Table("q"), rdb.DropIfExists) 21 assert.NilError(t, err) 22 x, err := rdb.Read(url, rdb.Query("select * from q")) 23 assert.NilError(t, err) 24 assertTrData(t, x) 25 } 26 27 func Test_SQL1b(t *testing.T) { 28 var err error 29 q := TrTable() 30 url := "sqlite3:file:/tmp/go-tables-test.sqlite3" 31 err = rdb.Write(url, q, rdb.Table("q"), rdb.DropIfExists) 32 assert.NilError(t, err) 33 x, err := rdb.Read(url, rdb.Query("select * from q")) 34 assert.NilError(t, err) 35 assertTrData(t, x) 36 } 37 38 func Test_SQL2(t *testing.T) { 39 var err error 40 q := TrTable() 41 42 db, err := sql.Open("sqlite3", "file:/tmp/go-tables-test.sqlite3") 43 assert.NilError(t, err) 44 err = rdb.Write(db, q, rdb.Table("q"), rdb.DropIfExists) 45 assert.NilError(t, err) 46 x, err := rdb.Read(db, rdb.Query("select * from q")) 47 assert.NilError(t, err) 48 49 assertTrData(t, x) 50 err = db.Close() 51 assert.NilError(t, err) 52 } 53 54 func Test_SQL3(t *testing.T) { 55 var err error 56 q := TrTable() 57 url := "sqlite3:file:/tmp/go-tables-test.sqlite3" 58 59 err = rdb.Write( 60 url, q, rdb.Table("q2"), 61 rdb.DropIfExists, 62 rdb.VARCHAR("Name", 256).As("id").PrimaryKey(), 63 rdb.DECIMAL("Rate", 3, 1).As("ra"), 64 rdb.FLOAT("Age").As("aa")) 65 66 assert.NilError(t, err) 67 68 x, err := rdb.Read(url, rdb.Query("select * from q2"), 69 rdb.Column("id").As("Name"), 70 rdb.FLOAT("ra").As("Rate"), 71 rdb.INTEGER("aa").As("Age")) 72 73 assert.NilError(t, err) 74 assertTrData(t, x) 75 76 y, err := rdb.Read(url, rdb.Table("q2"), 77 rdb.FLOAT("ra"), 78 rdb.INTEGER("aa")) 79 assert.NilError(t, err) 80 81 for i := 0; i < q.Len(); i++ { 82 assert.Assert(t, y.Col("aa").Index(i).Int() == q.Col("Age").Index(i).Int()) 83 } 84 }