Changeset: 6d57ca42a379 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=6d57ca42a379
Added Files:
        tools/embedded/rpackage/tests/testthat/test_lowlevel.R
        tools/embedded/rpackage/tests/thestthat.R
Branch: embedded
Log Message:

low level tests


diffs (100 lines):

diff --git a/tools/embedded/rpackage/tests/testthat/test_lowlevel.R 
b/tools/embedded/rpackage/tests/testthat/test_lowlevel.R
new file mode 100644
--- /dev/null
+++ b/tools/embedded/rpackage/tests/testthat/test_lowlevel.R
@@ -0,0 +1,86 @@
+library(testthat)
+library(MonetDB)
+
+test_that("db starts up", {
+       expect_equal(monetdb_embedded_startup(), TRUE)
+       expect_warning(monetdb_embedded_startup())
+})
+
+test_that("db runs queries and returns results", {
+       res <- monetdb_embedded_query("SELECT 42")
+       expect_equal(res$type, 1)
+       expect_equal(res$tuples$single_value, 42)
+       res <- monetdb_embedded_query("SELECT * FROM tables")
+       expect_equal(res$type, 1)
+       expect_is(res$tuples, "data.frame")
+       expect_true(nrow(res$tuples) > 0)
+       expect_true(ncol(res$tuples) > 0)
+})
+
+test_that("commit", {
+       monetdb_embedded_query("START TRANSACTION")
+       monetdb_embedded_query("CREATE TABLE foo (i integer)")
+       monetdb_embedded_query("INSERT INTO foo VALUES (42)")
+       res <- monetdb_embedded_query("SELECT i FROM foo")
+       expect_equal(res$tuples$i, 42)
+       monetdb_embedded_query("COMMIT")
+       res <- monetdb_embedded_query("SELECT i FROM foo")
+       expect_equal(res$tuples$i, 42)
+       res <- monetdb_embedded_query("SELECT * FROM tables WHERE name='foo'")
+       expect_equal(nrow(res$tuples), 1)
+       monetdb_embedded_query("DROP TABLE foo")
+})
+
+test_that("rollback works", {
+       monetdb_embedded_query("START TRANSACTION")
+       monetdb_embedded_query("CREATE TABLE foo (i integer)")
+       monetdb_embedded_query("INSERT INTO foo VALUES (42)")
+       res <- monetdb_embedded_query("SELECT i FROM foo")
+       expect_equal(res$tuples$i, 42)
+       monetdb_embedded_query("ROLLBACK")
+       res <- monetdb_embedded_query("SELECT i FROM foo")
+       expect_equal(res$type, "!")
+       res <- monetdb_embedded_query("SELECT * FROM tables WHERE name='foo'")
+       expect_equal(nrow(res$tuples), 0)
+})
+
+test_that("rollback with errors", {
+       monetdb_embedded_query("START TRANSACTION")
+       res <- monetdb_embedded_query("BULLSHIT")
+       expect_equal(res$type, "!")
+       res <- monetdb_embedded_query("SELECT 1")
+       expect_equal(res$type, "!")
+       monetdb_embedded_query("ROLLBACK")
+       res <- monetdb_embedded_query("SELECT 42")
+       expect_equal(res$type, 1)
+})
+
+test_that("pointless rollback/commit", {
+       expect_equal(monetdb_embedded_query("SELECT 1")$type, 1)
+       monetdb_embedded_query("COMMIT")
+       expect_equal(monetdb_embedded_query("SELECT 1")$type, 1)
+       monetdb_embedded_query("ROLLBACK")
+       expect_equal(monetdb_embedded_query("SELECT 1")$type, 1)
+})
+
+test_that("inserting data", {
+       monetdb_embedded_query("CREATE TABLE foo(i INTEGER, j INTEGER)")
+       monetdb_embedded_append("foo", data.frame(i=1:10, j=21:30))
+       res <- monetdb_embedded_query("SELECT * FROM foo")
+       expect_equal(nrow(res$tuples), 10)
+       expect_equal(ncol(res$tuples), 2)
+       expect_equal(res$tuples$i, 1:10)
+       expect_equal(res$tuples$j, 21:30)
+       monetdb_embedded_query("DROP TABLE foo")
+})
+
+# test_that("bigger data", {
+#      monetdb_embedded_query("CREATE TABLE lineitem (l_orderkey INT NOT NULL, 
l_partkey INT NOT NULL, l_suppkey INT NOT NULL, l_linenumber INT NOT NULL, 
l_quantity INTEGER NOT NULL, l_extendedprice DECIMAL(15,2) NOT NULL, l_discount 
DECIMAL(15,2) NOT NULL, l_tax DECIMAL(15,2) NOT NULL, l_returnflag VARCHAR(1) 
NOT NULL, l_linestatus VARCHAR(1) NOT NULL, l_shipdate DATE NOT NULL, 
l_commitdate DATE NOT NULL, l_receiptdate DATE NOT NULL, l_shipinstruct 
VARCHAR(25) NOT NULL, l_shipmode VARCHAR(10) NOT NULL, l_comment VARCHAR(44) 
NOT NULL, PRIMARY KEY (l_orderkey,l_linenumber))")
+#      monetdb_embedded_query("COPY INTO lineitem FROM 
'/Users/hannes/Desktop/lineitem.gz'")
+#      res <- monetdb_embedded_query("SELECT * FROM lineitem")
+#      expect_equal(res$type, 1)
+#      expect_equal(nrow(res$tuples), 1000000)
+#      expect_equal(ncol(res$tuples), 16)
+#      monetdb_embedded_query("DROP TABLE lineitem")
+# })
+
diff --git a/tools/embedded/rpackage/tests/thestthat.R 
b/tools/embedded/rpackage/tests/thestthat.R
new file mode 100644
--- /dev/null
+++ b/tools/embedded/rpackage/tests/thestthat.R
@@ -0,0 +1,4 @@
+library(testthat)
+library(MonetDB)
+
+test_check("MonetDB")
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to