Learn R Programming

TestDesign (version 1.7.1)

Optimal Test Design Approach to Fixed and Adaptive Test Construction

Description

Uses the optimal test design approach by Birnbaum (1968, ISBN:9781593119348) and van der Linden (2018) to construct fixed, adaptive, and parallel tests. Supports the following mixed-integer programming (MIP) solver packages: 'Rsymphony', 'highs', 'gurobi', 'lpSolve', and 'Rglpk'. The 'gurobi' package is not available from CRAN; see .

Copy Link

Version

Install

install.packages('TestDesign')

Monthly Downloads

348

Version

1.7.1

License

GPL (>= 2)

Maintainer

Seung W. Choi

Last Published

September 8th, 2026

Functions in TestDesign (1.7.1)

applyThin

(Internal) Thin a MCMC chain
calcLogLikelihood

Calculate log-likelihood
calcProb-methods

Calculate item response probabilities
calcJacobian

Calculate first derivative of log-likelihood
calcLocation-methods

Calculate central location (overall difficulty)
assemblyInFinalThetaSegmentWasFeasibleAtLeastOnceInInterimThetaSegments

(Internal) Determine if shadowtest assembly was feasible for exposure control purposes
assembleShadowTest

(Internal) Assemble a shadowtest
calc_posterior_function

Calculate a posterior distribution of theta
buildConstraints

Build constraints (shortcut to other loading functions)
calc_posterior_single

Calculate a posterior value of theta for a single item
calcEscore

Calculate expected scores
calc_posterior

Calculate a posterior value of theta
calc_likelihood

(C++) For multiple items, calculate likelihoods
calc_info_FB

Calculate the Fisher information using full Bayesian
calc_info_EB

Calculate the Fisher information using empirical Bayes
constraints-class

Class 'constraints': a set of constraints
constraint-class

Class 'constraint': a single constraint
checkConstraints

Check the consistency of constraints and item usage
calculateAdaptivityMeasures

Calculate Adaptivity Measures
combineConstraintsData

(Internal) Combine constraints data
clipEligibilityRates

(Internal) Clip eligibility rates into 0-1 bounds
dbind

(Internal) Bind matrices diagonally
dataset_science

Science dataset
calcFisher

Calculate Fisher information
combineItemPoolData

(Internal) Combine item pool data
config_Static-class

Create a config_Static object
estimateFinalTheta

(Internal) Estimate final theta
combineXdata

(Internal) Combine two constraint matrix-data
dataset_bayes

Bayes dataset
generateItemParameterSample

(Internal) Generate item parameter samples for Bayesian purposes
getScoreAttributes

Retrieve constraints-related scores from solution
constraints-operators

Basic operators for constraints objects
generateSampleFromPriorPar

(Internal) Generate random theta samples from prior distribution
getLBUBInConstraintData

(Internal) Parse item/stimulus lower/upper bounds from constraints data
config_Shadow-class

Create a config_Shadow object
getXdataOfExcludedEntry

(Internal) Translate item exclusion instructions into a constraint matrix-data
getInfoOfExcludedEntry

(Internal) Apply information penalty on items to be excluded
calcHessian

Calculate second derivative of log-likelihood
calc_info

(C++) For multiple items, calculate Fisher information
estimateInterimTheta

(Internal) Estimate interim theta
h_item

(C++) Calculate second derivative of log-likelihood
calc_MI_FB

Calculate the mutual information using full Bayesian
doExposureControl

(Internal) Perform exposure control
detectBestSolver

Detect best solver
getSolution

Print solution items
determineCurrentThetaSegment

(Internal) Determine the current theta segment
initializeDiagnosticExposureRecord

(Internal) Initialize diagnostic exposure record
initializeExposureRecord

(Internal) Initialize exposure record
flagIneligible

(Internal) Obtain item/set level eligibility flags
item_attrib-operators

Basic functions for item attribute objects
validateDifficulty

(Internal) Validate item objects
find_segment

(C++) Classify theta values into segments using cutpoints
getDecisionVariablesOfItemForMultipool

(Internal) Make decision variables for selecting an item
flagAdministeredAsEligible

(Internal) Update eligibility flags to mark administered items as eligible
getInfoFixedTheta

(Internal) Precalculate item information for fixed-theta item selection methods
incrementAlpha

(Internal) Increment exposure record variable: alpha
generateDensityFromPriorPar

(Internal) Convert prior parameters to distribution densities
.onAttach

(Internal) Package startup functions
computeInfoAtCurrentTheta

(Internal) Compute item information at current theta estimate
computeEAPFromPosterior

(Internal) Convert posterior densities into an EAP estimate
dataset_fatigue

Fatigue dataset
getEligibilityFlagInSegment

(Internal) Parse eligibility flags for a specific theta segment
dataset_reading

Reading dataset
getDecisionVariablesOfPoolForMultipool

(Internal) Make decision variables for selecting a pool
incrementN

(Internal) Increment exposure record variable: n
loadConstraints

Load constraints
isSolutionOptimal

(Internal) Check whether solution is optimal
getSolutionAttributes

Retrieve constraints-related attributes from solution
item_attrib-class

Load item attributes
item-classes

Item classes
getConstants

(Internal) Parse constants for adaptive test assembly simulation
getXdataOfAdministered

(Internal) Obtain constraint matrix-data of administered items/sets
getBayesianConstants

(Internal) Parse Bayesian-related constants
getSegmentProb

(Internal) Convert a theta distribution to segment-wise classification probabilities
getIndexOfExcludedEntry

(Internal) Convert item IDs to item indices for exclusion
loadItemPool

Load item pool
output_Shadow-class

Class 'output_Shadow': adaptive assembly solution for one simulee
initializeSegmentRecord

(Internal) Initialize segment record
makeSimulationDataCache

Create a simulation data cache object
getSegmentsToApply

(Internal) Make a vector for segment-dimensioned matrix update
eap

Compute expected a posteriori estimates of theta
e_item

(C++) Calculate expected scores
initializeUsageMatrix

(Internal) Initialize item usage matrix
isCustomFirstSegmentAvailable

(Internal) Check if customized first segments are available
mlef

Compute maximum likelihood estimates of theta using fence items
plotShadowInfo

(Internal) Plot test information of a single shadow test
st_attrib-class

Load set/stimulus/passage attributes
output_Static-class

Class 'output_Static': fixed-form assembly solution
p_item

(C++) Calculate item response probability
print

Extension of print() for objects in TestDesign package
getSegmentOf

(Internal) Calculate theta segment of a given examinee
makeTestCluster

Create a test cluster object
makeTest

Create a test object
iparPosteriorSample

Generate item parameter samples for Bayesian purposes
mle

Compute maximum likelihood estimates of theta
testSolver

Test solver
test-class

Class 'test': data cache for simulations
selectItemFromShadowTest

(Internal) Select item from a shadowtest
sanitizeModel

(Internal) Sanitize item model names for C++ functions
j_item

(C++) Calculate first derivative of log-likelihood
initializeCompletedGroupingsRecord

(Internal) Initialize groupings record
logitHyperPars

Convert mean and standard deviation into logit-normal distribution parameters
info_item

(C++) Calculate Fisher information
lnHyperPars

Convert mean and standard deviation into log-normal distribution parameters
item_pool_cluster-class

Class 'item_pool_cluster': an item pool
parseConstraintData

(Internal) Parse a constraint data into an object
makeConstraintsByEachPartition

make constraints objects from Split() solution indices
show

Extension of show() for objects in TestDesign package
makeItemPoolCluster

Create an item pool cluster object
makeDiagnosticExposureRecord

(Internal) Collect diagnostic exposure record
incrementPhi

(Internal) Increment exposure record variable: phi
shouldShadowTestBeRefreshed

(Internal) Determine whether shadowtest should be refreshed
makeSetStructureConstraints

(Internal) Make set-based strucutre constraints
runMIP

(Internal) Run MIP solver
parsePriorParameters

(Internal) Parse prior parameters from viable sources
validateFullColumn

(Internal) Validate constraint for completeness of its required attribute column
theta_EAP

(C++) Calculate a theta estimate using EAP (expected a posteriori) method
plot

Extension of plot() for objects in TestDesign package
incrementRho

(Internal) Increment exposure record variable: rho
parseShadowTestRefreshSchedule

(Internal) Parse shadowtest refresh schedule
item_pool-class

Class 'item_pool': an item pool
sanitizeConstraintsData

(Internal) Sanitize constraints data
plotShadowExposure

(Internal) Plot exposure rates from a simulation
plotShadowChart

(Internal) Plot shadow chart of a single examinee
item_pool-operators

Basic operators for item pool objects
test_operators

Basic operators for test objects
test_cluster-class

Class 'test_cluster': data cache for simulations
splitSolutionToBins

(Internal) Convert a partitioning problem solution to indices
updateCompletedGroupingsRecordForStimulus

(Internal) Update groupings record for stimulus
simResp

Simulate item response data
summary-classes

Summary classes
validateLBUB

(Internal) Validate constraint lower/upper bounds
returnErrors

(Internal) Return S4 object validation error messages
runAssembly

Run Test Assembly
plotShadowAudit

(Internal) Plot audit trail of a single examinee
theta_EB

(C++) Calculate a theta estimate using EB (Empirical Bayes) method
summary

Extension of summary() for objects in TestDesign package
simulation_data_cache-class

Class 'simulation_data_cache': data cache for Shadow()
validateSolver

(Internal) Validate solver for interactive use
updateDiagnosticExposureRecord

(Internal) Update diagnostic exposure record
st_attrib-operators

Basic functions for stimulus attribute objects
output_Shadow_all-class

Class 'output_Shadow_all': a set of adaptive assembly solutions
output_Split-class

Class 'output_Split': partitioning solution
updateSegmentRecord

(Internal) Update segment record
updateEligibilityRates

(Internal) Update eligibility rates based on exposure rates
plotExposurePanel

(Internal) Draw an exposure rate plot
validateConstraintData

(Internal) Validate constraint (wrapper for other validators)
validateExpression

(Internal) Validate constraint condition expression
theta_FB

(C++) Calculate a theta estimate using FB (Full Bayes) method
toggleConstraints

Toggle constraints
updateUsageMatrix

(Internal) Update item usage matrix
updateThetaPosterior

(Internal) Update posterior densities
a_to_alpha

Calculate alpha angles from a-parameters
addScoreToConstraintData

(Internal) Sum scores of items in a solution that match a constraint
TestDesign

Open TestDesign app
RMSE

Calculate Root Mean Squared Error
Static

Run fixed-form test assembly
app

Open TestDesign app
Split

Split an item pool into partitions
RE

Calculate Relative Errors
Shadow

Run adaptive test assembly
adjustAlphaToReduceSpike

(Internal) Apply spike-reduction mechanism on exposure rates
addCountsToConstraintData

(Internal) Count number of pool items that match a constraint
applyFading

(Internal) Apply fading to exposure record
addSolutionToConstraintData

(Internal) Count number of items in a solution that match a constraint
applyEligibilityConstraintsToXdata

(Internal) Augment constraint matrix-data with eligibility constraints
applyEligibilityConstraintsToInfo

(Internal) Modify item information using eligibility constraints
applyShrinkageCorrection

(Internal) Apply shrinkage correction to theta estimate
aggregateUsageMatrix

(Internal) Aggregate item usage matrix into exposure rate table
appendMeanInfo

(Internal) Append mean information to shadowtest
applyOverlapConstraintsToInfo

(Internal) Modify item information using overlap constraints