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