tests/testthat/test-vcd-basics.R

context("VCD setup, teardown and printing")

test_that("creating a VCD object works",{
          vcd<-VCDFile()
          expect_true(is.na(vcd$filename))
          expect_true(is.na(vcd$date))
          expect_true(is.na(vcd$version))
          expect_true(is.na(vcd$timescale))
          expect_true(is.na(vcd$hierarchy))
          expect_equal(vcd$dumpstart,c(0,0))
          expect_s3_class(vcd,"VCDFile")
          rm(vcd)

          expect_warning(vcd<-VCDFile("dummy.vcd",F),"File does not exist: dummy.vcd")
          expect_true(is.na(vcd$filename))
          expect_true(is.na(vcd$date))
          expect_true(is.na(vcd$version))
          expect_true(is.na(vcd$timescale))
          expect_true(is.na(vcd$hierarchy))
          expect_equal(vcd$dumpstart,c(0,0))
          expect_s3_class(vcd,"VCDFile")
          rm(vcd)

          expect_warning(vcd<-VCDFile("dummy.vcd",F),"File does not exist: dummy.vcd")
          expect_true(is.na(vcd$filename))
          expect_true(is.na(vcd$date))
          expect_true(is.na(vcd$version))
          expect_true(is.na(vcd$timescale))
          expect_true(is.na(vcd$hierarchy))
          expect_equal(vcd$dumpstart,c(0,0))
          expect_s3_class(vcd,"VCDFile")
          rm(vcd)

          vcd<-VCDFile("wikipedia.vcd",F)
          expect_equal(vcd$filename,"wikipedia.vcd")
          expect_true(is.na(vcd$date))
          expect_true(is.na(vcd$version))
          expect_true(is.na(vcd$timescale))
          expect_true(is.na(vcd$hierarchy))
          expect_equal(vcd$dumpstart,c(0,0))
          expect_s3_class(vcd,"VCDFile")
          rm(vcd)

          vcd<-VCDFile("wikipedia.vcd")
          expect_equal(vcd$filename,"wikipedia.vcd")
          expect_equal(vcd$date,"Date text. For example: November 11, 2009.")
          expect_equal(vcd$version,"VCD generator tool version info text.")
          expect_equal(vcd$timescale,c(scale="1",unit="ps"))
          load("hierref1.RData")
          expect_equal(data.tree::ToListSimple(vcd$hierarchy),ref)
          expect_equal(vcd$dumpstart,c(0,483))
          expect_s3_class(vcd,"VCDFile")

})

test_that("printing an empty VCD object works",{
  expect_output(print(VCDFile()),"file: NA\ngenerated by: NA\ndump time: NA\ntimescale: NA\nnumber of signals: 0")
})

test_that("printing a simple VCD object works",{
  expect_output(print(VCDFile("wikipedia.vcd")),"file: wikipedia.vcd\ngenerated by: VCD generator tool version info text.\ndump time: Date text. For example: November 11, 2009.\ntimescale: 1 ps\nnumber of signals: 14") #nolint (line length)
  expect_output(print(VCDFile("wikipedia.vcd"),T),"file: wikipedia.vcd\ngenerated by: VCD generator tool version info text.\ndump time: Date text. For example: November 11, 2009.\ntimescale: 1 ps\nnumber of signals: 14\n     levelName humanReadableName\n1  logic                        \n2   |--#                    data\n3   |   |--#.0       data, bit 0\n4   |   |--#.1       data, bit 1\n5   |   |--#.2       data, bit 2\n6   |   |--#.3       data, bit 3\n7   |   |--#.4       data, bit 4\n8   |   |--#.5       data, bit 5\n9   |   |--#.6       data, bit 6\n10  |   |--#.7       data, bit 7\n11  |--$              data_valid\n12  |--%                      en\n13  |--&                   rx_en\n14  |--'                   tx_en\n15  |--(                   empty\n16  |--)                underrun") #nolint (line length)
})

test_that("printing a simple VCD object with multiline infos works",{
  vcd<-VCDFile()
  vcd$date<-c("Line 1","Line 2")
  vcd$version<-c("Version 1","Version  2", "Version 3")
  expect_output(print(vcd),"file: NA\ngenerated by: \n  Version 1\n  Version  2\n  Version 3\ndump time: \n  Line 1\n  Line 2\ntimescale: NA\nnumber of signals: 0") #nolint
})
wamserma/VCD2R documentation built on May 20, 2023, 11:17 p.m.