Skip to content

Commit

Permalink
Test 'get.data.cut.to.same.date' in presence of an empty data source
Browse files Browse the repository at this point in the history
This test fails without the previous fix by Thomas Bock but does not
fail when the fix is in place.

This works towards fixing #269.

Signed-off-by: Maximilian Löffler <[email protected]>
  • Loading branch information
maxloeffler committed Oct 17, 2024
1 parent 10696e4 commit 646c01a
Showing 1 changed file with 61 additions and 0 deletions.
61 changes: 61 additions & 0 deletions tests/test-data-cut.R
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
## Copyright 2018 by Thomas Bock <[email protected]>
## Copyright 2020 by Thomas Bock <[email protected]>
## Copyright 2018 by Jakob Kronawitter <[email protected]>
## Copyright 2024 by Maximilian Löffler <[email protected]>
## All Rights Reserved.


Expand Down Expand Up @@ -82,3 +83,63 @@ test_that("Cut commit and mail data to same date range.", {
expect_identical(mail.data, mail.data.expected, info = "Cut mail data.")

})

test_that("Cut data to same date range with one empty data source.", {

## configurations

proj.conf = ProjectConf$new(CF.DATA, CF.SELECTION.PROCESS, CASESTUDY, ARTIFACT)

## in order to properly test whether the data types of timestamps originating from empty data are correct,
## ensure that the first provided data source contains empty data. This is important as R usually uses the
## first entry of a data frame to determine the data type of it. However, the data type of the project timestamps
## should be properly set regardless of the empty data.
proj.conf$update.value("issues.locked", TRUE)
data.sources = c("issues", "mails", "commits")

## construct objects

x.data = ProjectData$new(proj.conf)
x.data$set.issues(NULL)

commit.data.expected = data.frame(commit.id = sprintf("<commit-%s>", c(32712, 32713)),
date = get.date.from.string(c("2016-07-12 15:58:59", "2016-07-12 16:00:45")),
author.name = c("Björn", "Olaf"),
author.email = c("[email protected]", "[email protected]"),
committer.date = get.date.from.string(c("2016-07-12 15:58:59", "2016-07-20 10:00:44")),
committer.name = c("Björn", "Björn"),
committer.email = c("[email protected]", "[email protected]"),
hash = c("72c8dd25d3dd6d18f46e2b26a5f5b1e2e8dc28d0", "5a5ec9675e98187e1e92561e1888aa6f04faa338"),
changed.files = as.integer(c(1, 1)),
added.lines = as.integer(c(1, 1)),
deleted.lines = as.integer(c(1, 0)),
diff.size = as.integer(c(2, 1)),
file = c("test.c", "test.c"),
artifact = c("A", "A"),
artifact.type = c("Feature", "Feature"),
artifact.diff.size = as.integer(c(1, 1)))

mail.data.expected = data.frame(author.name = c("Thomas", "Olaf"),
author.email = c("[email protected]", "[email protected]"),
message.id = c("<[email protected]>", "<[email protected]>"),
date = get.date.from.string(c("2016-07-12 16:04:40", "2016-07-12 16:05:37")),
date.offset = as.integer(c(100, 200)),
subject = c("Re: Fw: busybox 2 tab", "Re: Fw: busybox 10"),
thread = sprintf("<thread-%s>", c("13#9", "13#9")),
artifact.type = c("Mail", "Mail"))

issue.data.expected = create.empty.issues.list()

commit.data = x.data$get.data.cut.to.same.date(data.sources = data.sources)$get.commits.unfiltered()
rownames(commit.data) = 1:nrow(commit.data)

mail.data = x.data$get.data.cut.to.same.date(data.sources = data.sources)$get.mails()
rownames(mail.data) = 1:nrow(mail.data)

issue.data = x.data$get.data.cut.to.same.date(data.sources = data.sources)$get.issues()

expect_identical(commit.data, commit.data.expected, info = "Cut Raw commit data.")
expect_identical(mail.data, mail.data.expected, info = "Cut mail data.")
expect_identical(issue.data, issue.data.expected, info = "Cut issue data (empty).")

})

0 comments on commit 646c01a

Please sign in to comment.