tests/testthat/test-file-format-coverage.R

context("file_format coverage")

library(neuroim2)

# ---- FileFormat construction ----

test_that("NIFTIFormat object exists and has correct slots", {
  expect_s4_class(neuroim2:::NIFTI, "NIFTIFormat")
  expect_equal(neuroim2:::NIFTI@header_extension, "nii")
  expect_equal(neuroim2:::NIFTI@data_extension,   "nii")
  expect_equal(neuroim2:::NIFTI@file_format,      "NIFTI")
})

test_that("NIFTI_GZ object has gzip encoding", {
  expect_s4_class(neuroim2:::NIFTI_GZ, "NIFTIFormat")
  expect_equal(neuroim2:::NIFTI_GZ@header_extension, "nii.gz")
  expect_equal(neuroim2:::NIFTI_GZ@data_extension,   "nii.gz")
})

test_that("NIFTI_PAIR object has hdr/img extensions", {
  expect_s4_class(neuroim2:::NIFTI_PAIR, "NIFTIFormat")
  expect_equal(neuroim2:::NIFTI_PAIR@header_extension, "hdr")
  expect_equal(neuroim2:::NIFTI_PAIR@data_extension,   "img")
})

test_that("AFNI object has correct extensions", {
  expect_s4_class(neuroim2:::AFNI, "AFNIFormat")
  expect_equal(neuroim2:::AFNI@header_extension, "HEAD")
  expect_equal(neuroim2:::AFNI@data_extension,   "BRIK")
})

# ---- header_file_matches ----

test_that("header_file_matches is TRUE for matching extension", {
  fmt <- neuroim2:::NIFTI_PAIR
  expect_true(header_file_matches(fmt, "brain.hdr"))
})

test_that("header_file_matches is FALSE for wrong extension", {
  fmt <- neuroim2:::NIFTI_PAIR
  expect_false(header_file_matches(fmt, "brain.img"))
  expect_false(header_file_matches(fmt, "brain.hdr.gz"))
})

test_that("header_file_matches is TRUE for .nii file with NIFTIFormat", {
  fmt <- neuroim2:::NIFTI
  expect_true(header_file_matches(fmt, "brain.nii"))
})

# ---- data_file_matches ----

test_that("data_file_matches is TRUE for matching extension", {
  fmt <- neuroim2:::NIFTI_PAIR
  expect_true(data_file_matches(fmt, "brain.img"))
})

test_that("data_file_matches is FALSE for wrong extension", {
  fmt <- neuroim2:::NIFTI_PAIR
  expect_false(data_file_matches(fmt, "brain.hdr"))
})

# ---- header_file / data_file ----

test_that("header_file returns same name when already a header file", {
  fmt <- neuroim2:::NIFTI_PAIR
  expect_equal(header_file(fmt, "brain.hdr"), "brain.hdr")
})

test_that("header_file derives header name from data file", {
  fmt <- neuroim2:::NIFTI_PAIR
  expect_equal(header_file(fmt, "brain.img"), "brain.hdr")
})

test_that("data_file returns same name when already a data file", {
  fmt <- neuroim2:::NIFTI_PAIR
  expect_equal(data_file(fmt, "brain.img"), "brain.img")
})

test_that("data_file derives data name from header file", {
  fmt <- neuroim2:::NIFTI_PAIR
  expect_equal(data_file(fmt, "brain.hdr"), "brain.img")
})

test_that("header_file errors on unrecognized extension", {
  fmt <- neuroim2:::NIFTI_PAIR
  expect_error(header_file(fmt, "brain.xyz"))
})

test_that("data_file errors on unrecognized extension", {
  fmt <- neuroim2:::NIFTI_PAIR
  expect_error(data_file(fmt, "brain.xyz"))
})

# ---- strip_extension ----

test_that("strip_extension removes header extension", {
  fmt <- neuroim2:::NIFTI_PAIR
  expect_equal(strip_extension(fmt, "brain.hdr"), "brain")
})

test_that("strip_extension removes data extension", {
  fmt <- neuroim2:::NIFTI_PAIR
  expect_equal(strip_extension(fmt, "brain.img"), "brain")
})

test_that("strip_extension errors on unrecognized file", {
  fmt <- neuroim2:::NIFTI_PAIR
  expect_error(strip_extension(fmt, "brain.xyz"))
})

# ---- find_descriptor ----

test_that("find_descriptor returns NIFTI for a real .nii file", {
  tmp <- tempfile(fileext = ".nii")
  file.create(tmp)
  on.exit(unlink(tmp))
  result <- neuroim2:::find_descriptor(tmp)
  expect_s4_class(result, "NIFTIFormat")
})

test_that("find_descriptor returns NULL for unknown extension", {
  tmp <- tempfile(fileext = ".xyz")
  file.create(tmp)
  on.exit(unlink(tmp))
  result <- neuroim2:::find_descriptor(tmp)
  expect_null(result)
})

test_that("find_descriptor returns NIFTI_GZ for .nii.gz file", {
  tmp <- tempfile(fileext = ".nii.gz")
  file.create(tmp)
  on.exit(unlink(tmp))
  result <- neuroim2:::find_descriptor(tmp)
  expect_s4_class(result, "NIFTIFormat")
})

Try the neuroim2 package in your browser

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

neuroim2 documentation built on April 16, 2026, 5:07 p.m.