tests/testthat/test-utils-textnets.R

test_that("doc_centrality, degree", {
    out1 <- doc_centrality(dtm.dgc, method = "degree")
    out2 <- doc_centrality(dtm.dgc, method = "degree", alpha = 0.5)
    out3 <- doc_centrality(dtm.bse, method = "degree")

    dsm <- Matrix::tcrossprod(dtm.dgc)
    out4 <- doc_centrality(dsm, method = "degree", two_mode = FALSE)

    expect_s3_class(out1, "data.frame")
    expect_s3_class(out2, "data.frame")
    expect_s3_class(out3, "data.frame")
    expect_s3_class(out4, "data.frame")

    expect_identical(out1, out4)
    expect_identical(out1, out3)
    expect_identical(dim(out1), c(10L, 2L))
    expect_identical(dim(out2), c(10L, 2L))
    expect_identical(dim(out3), c(10L, 2L))
    expect_identical(dim(out4), c(10L, 2L))

    expect_false(all(out1$degree == out2$degree))

    expect_equal(out1$degree[1], 20)
    expect_equal(round(out2$degree[1], 3), 10.954)
    expect_equal(out3$degree[1], 20)
    expect_equal(out4$degree[1], 20)
})

test_that("doc_centrality, eigen", {
    out1 <- doc_centrality(dtm.dgc, method = "eigen")
    out3 <- doc_centrality(dtm.bse, method = "eigen")

    dsm <- Matrix::tcrossprod(dtm.dgc)
    out4 <- doc_centrality(dsm, method = "eigen", two_mode = FALSE)

    expect_s3_class(out1, "data.frame")
    expect_s3_class(out3, "data.frame")
    expect_s3_class(out4, "data.frame")

    expect_identical(out1, out4)
    expect_identical(out1, out3)
    expect_identical(dim(out1), c(10L, 2L))
    expect_identical(dim(out3), c(10L, 2L))
    expect_identical(dim(out4), c(10L, 2L))

    expect_equal(round(out1$eigen[1], 3), 0.464)
    expect_equal(round(out3$eigen[1], 3), 0.464)
    expect_equal(round(out4$eigen[1], 3), 0.464)
})

test_that("doc_centrality, between", {
    out1 <- doc_centrality(dtm.dgc, method = "between")
    out2 <- doc_centrality(dtm.dgc, method = "between", alpha = 0.5)
    out3 <- doc_centrality(dtm.bse, method = "between")

    dsm <- Matrix::tcrossprod(dtm.dgc)
    out4 <- doc_centrality(dsm, method = "between", two_mode = FALSE)

    expect_s3_class(out1, "data.frame")
    expect_s3_class(out2, "data.frame")
    expect_s3_class(out3, "data.frame")
    expect_s3_class(out4, "data.frame")

    expect_identical(out1, out4)
    expect_identical(out1, out3)
    expect_identical(dim(out1), c(10L, 2L))
    expect_identical(dim(out2), c(10L, 2L))
    expect_identical(dim(out3), c(10L, 2L))
    expect_identical(dim(out4), c(10L, 2L))

    expect_false(all(out1$between == out2$between))

    expect_equal(round(out1$between[2], 3), 4)
    expect_equal(round(out3$between[2], 3), 4)
    expect_equal(round(out4$between[2], 3), 4)
})

test_that("doc_centrality, span", {

    # spanning is (currently) undefined for
    # disconnected graphs
    dtm.dgc1 <- cbind(dtm.dgc, 1)
    dtm.bse1 <- as.matrix(dtm.dgc1)

    out1 <- doc_centrality(dtm.dgc1, method = "span")
    out2 <- doc_centrality(dtm.dgc1, method = "span", alpha = 0.5)
    out3 <- doc_centrality(dtm.bse1, method = "span")

    dsm <- Matrix::tcrossprod(dtm.dgc1)
    out4 <- doc_centrality(dsm, method = "span", two_mode = FALSE)

    expect_s3_class(out1, "data.frame")
    expect_s3_class(out2, "data.frame")
    expect_s3_class(out3, "data.frame")
    expect_s3_class(out4, "data.frame")

    expect_identical(out1, out4)
    expect_identical(out1, out3)
    expect_identical(dim(out1), c(10L, 2L))
    expect_identical(dim(out2), c(10L, 2L))
    expect_identical(dim(out3), c(10L, 2L))
    expect_identical(dim(out4), c(10L, 2L))

    expect_false(all(out1$span == out2$span))

    expect_equal(round(out1$span[1], 3), -1.276)
    expect_equal(round(out2$span[1], 3), 0.193)
    expect_equal(round(out3$span[1], 3), -1.276)
    expect_equal(round(out4$span[1], 3), -1.276)
})


test_that("doc_similarity, projection", {
    out1 <- doc_similarity(dtm.dgc, method = "projection")
    expect_true(ncol(out1) == nrow(out1))
})

test_that("doc_similarity, cosine", {
    out1 <- doc_similarity(dtm.dgc, method = "cosine")
    expect_true(ncol(out1) == nrow(out1))
})


test_that("doc_similarity, cosine, x and y", {
    out1 <- doc_similarity(dtm.dgc, dtm.dgc, method = "cosine")
    expect_true(ncol(out1) == nrow(out1))
})


test_that("doc_similarity, wmd", {
    out1 <- doc_similarity(dtm.dgc,
        wv = fake_word_vectors,
        method = "wmd"
    )
    expect_true(ncol(out1) == nrow(out1))
})

test_that("doc_similarity, centroid", {
    out1 <- doc_similarity(dtm.dgc,
        wv = fake_word_vectors,
        method = "centroid"
    )
    expect_true(ncol(out1) == nrow(out1))
})

Try the text2map package in your browser

Any scripts or data that you put into this service are public.

text2map documentation built on July 9, 2023, 6:35 p.m.