{
  "_id": "6a5b3ed99baadeef8ab4d359",
  "Package": "eatATA",
  "Type": "Package",
  "Title": "Create Constraints for Small Test Assembly Problems",
  "Version": "1.1.2.9001",
  "Authors@R": "c(\nperson(\"Benjamin\", \"Becker\", email = \"b.becker@iqb.hu-berlin.de\", role = c(\"aut\", \"cre\")),\nperson(\"Dries\", \"Debeer\", email = \"dries.debeer@kuleuven.be\", role = c(\"aut\")),\nperson(\"Grewers\", \"Edna\", email = \"edna.grewers@hu-berlin.de\", role = c(\"ctb\")))",
  "Description": "Provides simple functions to create constraints for small\ntest assembly problems (e.g. van der Linden (2005, ISBN:\n978-0-387-29054-6)) using sparse matrices. Currently, 'GLPK',\n'lpSolve', 'Symphony', and 'Gurobi' are supported as solvers.\nThe 'gurobi' package is not available from any mainstream\nrepository; see <https://www.gurobi.com/downloads/>.",
  "License": "GPL",
  "URL": "https://github.com/beckerbenj/eatATA,\nhttps://beckerbenj.github.io/eatATA/",
  "Encoding": "UTF-8",
  "LazyData": "true",
  "RoxygenNote": "7.3.2",
  "RdMacros": "mathjaxr",
  "VignetteBuilder": "knitr",
  "Config/pak/sysreqs": "libglpk-dev",
  "Repository": "https://beckerbenj.r-universe.dev",
  "Date/Publication": "2026-06-18 13:03:10 UTC",
  "RemoteUrl": "https://github.com/beckerbenj/eatata",
  "RemoteRef": "HEAD",
  "RemoteSha": "ee4366383130a7e02f82664d1e3f1e379435e175",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-07-18 08:45:57 UTC",
    "User": "root"
  },
  "Author": "Benjamin Becker [aut, cre],\nDries Debeer [aut],\nGrewers Edna [ctb]",
  "Maintainer": "Benjamin Becker <b.becker@iqb.hu-berlin.de>",
  "_user": "beckerbenj",
  "_type": "src",
  "_file": "eatATA_1.1.2.9001.tar.gz",
  "_fileid": "https://r2.ropensci.org/14795b2789834a5b2a996be2099ed2b17662a68bab0a7d1cc359a29015097996",
  "_filesize": 401416,
  "_sha256": "14795b2789834a5b2a996be2099ed2b17662a68bab0a7d1cc359a29015097996",
  "_expires": "2026-10-26T08:52:40.000Z",
  "_created": "2026-07-18T08:45:57.000Z",
  "_published": "2026-07-18T08:52:41.755Z",
  "_jobs": [
    {
      "job": 88063655076,
      "time": 140,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "8427737417"
    },
    {
      "job": 88063655062,
      "time": 142,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8427737822"
    },
    {
      "job": 88063655075,
      "time": 183,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "8427765117"
    },
    {
      "job": 88063655057,
      "time": 195,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8427761659"
    },
    {
      "job": 88063403648,
      "time": 200,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8427716409"
    },
    {
      "job": 88063655085,
      "time": 117,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "8427734113"
    },
    {
      "job": 88063655095,
      "time": 91,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "8427730416"
    },
    {
      "job": 88063655093,
      "time": 113,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "8427733756"
    },
    {
      "job": 88063655082,
      "time": 81,
      "config": "windows-release",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8427729011"
    }
  ],
  "_host": "GitHub-Actions",
  "_buildurl": "https://github.com/r-universe/beckerbenj/actions/runs/29637913529",
  "_status": "success",
  "_upstream": "https://github.com/beckerbenj/eatata",
  "_commit": {
    "id": "ee4366383130a7e02f82664d1e3f1e379435e175",
    "author": "Edna Grewers <135963233+grewered@users.noreply.github.com>",
    "committer": "GitHub <noreply@github.com>",
    "message": "Merge pull request #9 from beckerbenj/input_validation\n\nInput validation",
    "time": 1781787790
  },
  "_maintainer": {
    "name": "Benjamin Becker",
    "email": "b.becker@iqb.hu-berlin.de"
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 3.6.0",
      "role": "Depends"
    },
    {
      "package": "Matrix",
      "role": "Imports"
    },
    {
      "package": "methods",
      "role": "Imports"
    },
    {
      "package": "Rglpk",
      "role": "Imports"
    },
    {
      "package": "mathjaxr",
      "role": "Imports"
    },
    {
      "package": "lpSolve",
      "role": "Imports"
    },
    {
      "package": "checkmate",
      "role": "Imports"
    },
    {
      "package": "testthat",
      "version": ">= 2.1.0",
      "role": "Suggests"
    },
    {
      "package": "covr",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "readxl",
      "role": "Suggests"
    },
    {
      "package": "Rsymphony",
      "role": "Suggests"
    },
    {
      "package": "gurobi",
      "role": "Enhances"
    }
  ],
  "_owner": "beckerbenj",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2025-37",
      "n": 1
    },
    {
      "week": "2025-46",
      "n": 1
    },
    {
      "week": "2025-49",
      "n": 2
    },
    {
      "week": "2026-14",
      "n": 1
    },
    {
      "week": "2026-25",
      "n": 1
    }
  ],
  "_tags": [],
  "_stars": 4,
  "_contributors": [
    {
      "user": "beckerbenj",
      "count": 170,
      "uuid": 35807186
    },
    {
      "user": "ddebeer",
      "count": 68,
      "uuid": 48486801
    },
    {
      "user": "grewered",
      "count": 2,
      "uuid": 135963233
    }
  ],
  "_userbio": {
    "uuid": 35807186,
    "type": "user",
    "name": "Benjamin Becker",
    "followers": 17
  },
  "_downloads": {
    "count": 361,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/eatATA"
  },
  "_devurl": "https://github.com/beckerbenj/eatata",
  "_pkgdown": "https://beckerbenj.github.io/eatATA/",
  "_searchresults": 31,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/eatATA.html",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "manual.pdf"
  ],
  "_homeurl": "https://github.com/beckerbenj/eatata",
  "_realowner": "beckerbenj",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.7.0",
      "date": "2020-09-15"
    },
    {
      "version": "0.9.1",
      "date": "2020-12-07"
    },
    {
      "version": "0.10.0",
      "date": "2021-02-10"
    },
    {
      "version": "0.11.1",
      "date": "2021-04-16"
    },
    {
      "version": "0.11.2",
      "date": "2021-05-03"
    },
    {
      "version": "1.0.0",
      "date": "2021-07-06"
    },
    {
      "version": "1.1.0",
      "date": "2022-09-26"
    },
    {
      "version": "1.1.1",
      "date": "2022-11-28"
    },
    {
      "version": "1.1.2",
      "date": "2023-12-12"
    }
  ],
  "_exports": [
    "acrossFormsConstraint",
    "analyzeBlockExclusion",
    "analyzeComplexBlockExclusion",
    "appendSolution",
    "autoItemValuesMinMaxConstraint",
    "calculateExpectedRT",
    "calculateExpectedRTvar",
    "calculateIIF",
    "cappedMaximinObjective",
    "combineConstraints",
    "computeTargetValues",
    "depletePoolConstraint",
    "dummiesToFactor",
    "getMean2PLN",
    "getMean3PLN",
    "getVar2PLN",
    "getVar3PLN",
    "inspectSolution",
    "itemCategoryConstraint",
    "itemCategoryDeviationConstraint",
    "itemCategoryMaxConstraint",
    "itemCategoryMinConstraint",
    "itemCategoryRangeConstraint",
    "itemExclusionConstraint",
    "itemInclusionConstraint",
    "itemsPerFormConstraint",
    "itemTuples",
    "itemUsageConstraint",
    "itemValuesConstraint",
    "itemValuesDeviationConstraint",
    "itemValuesMaxConstraint",
    "itemValuesMinConstraint",
    "itemValuesRangeConstraint",
    "matrixExclusionTuples",
    "maximinObjective",
    "maxObjective",
    "minimaxObjective",
    "minObjective",
    "stemInclusionTuples",
    "useSolver"
  ],
  "_datasets": [
    {
      "name": "items_diao",
      "title": "Small simulated item pool example.",
      "object": "items_diao",
      "class": [
        "data.frame"
      ],
      "fields": [
        "item",
        "a",
        "b",
        "c",
        "Category"
      ],
      "rows": 165,
      "table": true,
      "tojson": true
    },
    {
      "name": "items_lsa",
      "title": "Simulated item pool example.",
      "object": "items_lsa",
      "class": [
        "data.frame"
      ],
      "fields": [
        "testlet",
        "item",
        "level",
        "format",
        "frequency",
        "infit",
        "time",
        "anchor"
      ],
      "rows": 209,
      "table": true,
      "tojson": true
    },
    {
      "name": "items_mini",
      "title": "Small simulated item pool example.",
      "object": "items_mini",
      "class": [
        "data.frame"
      ],
      "fields": [
        "item",
        "format",
        "time",
        "difficulty"
      ],
      "rows": 30,
      "table": true,
      "tojson": true
    },
    {
      "name": "items_pilot",
      "title": "Small simulated item pool example.",
      "object": "items_pilot",
      "class": [
        "data.frame"
      ],
      "fields": [
        "item",
        "diffCategory",
        "format",
        "domain",
        "time",
        "exclusions"
      ],
      "rows": 100,
      "table": true,
      "tojson": true
    },
    {
      "name": "items_vera",
      "title": "Small artificial item pool example.",
      "object": "items_vera",
      "class": [
        "data.frame"
      ],
      "fields": [
        "item",
        "exclusions",
        "time",
        "subitems",
        "MC",
        "CMC",
        "short_answer",
        "open",
        "diff_1",
        "diff_2",
        "diff_3",
        "diff_4",
        "diff_5"
      ],
      "rows": 80,
      "table": true,
      "tojson": true
    }
  ],
  "_help": [
    {
      "page": "acrossFormsConstraint",
      "title": "Constrain the sum of item values across multiple forms.",
      "topics": [
        "acrossFormsConstraint"
      ]
    },
    {
      "page": "analyzeBlockExclusion",
      "title": "Analyze block exclusiveness",
      "topics": [
        "analyzeBlockExclusion"
      ]
    },
    {
      "page": "analyzeComplexBlockExclusion",
      "title": "Analyze complex block exclusiveness",
      "topics": [
        "analyzeComplexBlockExclusion"
      ]
    },
    {
      "page": "appendSolution",
      "title": "Append a 'useSolver' output",
      "topics": [
        "appendSolution"
      ]
    },
    {
      "page": "autoItemValuesMinMaxConstraint",
      "title": "Create single value constraints with minimum and maximum.",
      "topics": [
        "autoItemValuesMinMaxConstraint"
      ]
    },
    {
      "page": "get_mean_3PLN",
      "title": "Calculate Cumulants Lognormal Response Time Distribution",
      "topics": [
        "calculateExpectedRT",
        "calculateExpectedRTvar"
      ]
    },
    {
      "page": "calculateIIF",
      "title": "Calculate Item Information Function",
      "topics": [
        "calculateIIF"
      ]
    },
    {
      "page": "cappedMaximinObjective",
      "title": "Capped Maximin Constraint.",
      "topics": [
        "cappedMaximinObjective"
      ]
    },
    {
      "page": "combineConstraints",
      "title": "Combine constraints",
      "topics": [
        "combineConstraints"
      ]
    },
    {
      "page": "computeTargetValues",
      "title": "Compute target values based on the item pool.",
      "topics": [
        "computeTargetValues",
        "computeTargetValues.default",
        "computeTargetValues.factor"
      ]
    },
    {
      "page": "depletePoolConstraint",
      "title": "Use complete item pool.",
      "topics": [
        "depletePoolConstraint"
      ]
    },
    {
      "page": "dummiesToFactor",
      "title": "Convert dummy variables to factor.",
      "topics": [
        "dummiesToFactor"
      ]
    },
    {
      "page": "getMean3PLN",
      "title": "Calculate Cumulants Lognormal Response Time Distribution",
      "topics": [
        "getMean2PLN",
        "getMean3PLN",
        "getVar2PLN",
        "getVar3PLN"
      ]
    },
    {
      "page": "inspectSolution",
      "title": "Inspect a 'useSolver' output",
      "topics": [
        "inspectSolution"
      ]
    },
    {
      "page": "itemCategoryConstraint",
      "title": "Create item category constraints.",
      "topics": [
        "itemCategoryConstraint"
      ]
    },
    {
      "page": "itemCategoryRangeConstraint",
      "title": "Create item category constraints with minimum and maximum.",
      "topics": [
        "itemCategoryDeviationConstraint",
        "itemCategoryMaxConstraint",
        "itemCategoryMinConstraint",
        "itemCategoryRangeConstraint"
      ]
    },
    {
      "page": "itemExclusionConstraint",
      "title": "Create item inclusion or exclusion constraints.",
      "topics": [
        "itemExclusionConstraint",
        "itemInclusionConstraint"
      ]
    },
    {
      "page": "items_diao",
      "title": "Small simulated item pool example.",
      "topics": [
        "items_diao"
      ]
    },
    {
      "page": "items_lsa",
      "title": "Simulated item pool example.",
      "topics": [
        "items_lsa"
      ]
    },
    {
      "page": "items_mini",
      "title": "Small simulated item pool example.",
      "topics": [
        "items_mini"
      ]
    },
    {
      "page": "items_pilot",
      "title": "Small simulated item pool example.",
      "topics": [
        "items_pilot"
      ]
    },
    {
      "page": "items_vera",
      "title": "Small artificial item pool example.",
      "topics": [
        "items_vera"
      ]
    },
    {
      "page": "itemsPerFormConstraint",
      "title": "Create number of items per test form constraints.",
      "topics": [
        "itemsPerFormConstraint"
      ]
    },
    {
      "page": "itemTuples",
      "title": "Create item tuples.",
      "topics": [
        "itemTuples"
      ]
    },
    {
      "page": "itemUsageConstraint",
      "title": "Create item usage constraints.",
      "topics": [
        "itemUsageConstraint"
      ]
    },
    {
      "page": "itemValuesConstraint",
      "title": "Constrain the sum of item values per form.",
      "topics": [
        "itemValuesConstraint"
      ]
    },
    {
      "page": "itemValuesRangeConstraint",
      "title": "Create single value constraints with minimum and maximum.",
      "topics": [
        "itemValuesDeviationConstraint",
        "itemValuesMaxConstraint",
        "itemValuesMinConstraint",
        "itemValuesRangeConstraint"
      ]
    },
    {
      "page": "matrixExclusionTuples",
      "title": "Create item exclusion tuples from matrix.",
      "topics": [
        "matrixExclusionTuples"
      ]
    },
    {
      "page": "maximinObjective",
      "title": "Maximin Constraint.",
      "topics": [
        "maximinObjective"
      ]
    },
    {
      "page": "maxObjective",
      "title": "Max Constraint.",
      "topics": [
        "maxObjective"
      ]
    },
    {
      "page": "minimaxObjective",
      "title": "Minimax Constraint.",
      "topics": [
        "minimaxObjective"
      ]
    },
    {
      "page": "minObjective",
      "title": "Min Constraint.",
      "topics": [
        "minObjective"
      ]
    },
    {
      "page": "stemInclusionTuples",
      "title": "Create item inclusion tuples from item stem.",
      "topics": [
        "stemInclusionTuples"
      ]
    },
    {
      "page": "useSolver",
      "title": "Use a solver for a list of constraints.",
      "topics": [
        "useSolver"
      ]
    }
  ],
  "_pkglogo": "https://github.com/beckerbenj/eatata/raw/HEAD/man/figures/logo.png",
  "_readme": "https://github.com/beckerbenj/eatata/raw/HEAD/README.md",
  "_rundeps": [
    "backports",
    "checkmate",
    "lattice",
    "lpSolve",
    "mathjaxr",
    "Matrix",
    "Rglpk",
    "slam"
  ],
  "_vignettes": [
    {
      "source": "overview.Rmd",
      "filename": "overview.html",
      "title": "Overview of eatATA Functionality",
      "author": "Benjamin Becker",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Setup",
        "Item pool preparation",
        "Objective function",
        "Constraints",
        "Solver function",
        "Using the solver output",
        "Booklet exclusions"
      ],
      "created": "2021-02-04 17:01:05",
      "modified": "2022-09-26 17:29:50",
      "commits": 8
    },
    {
      "source": "minimal_example.Rmd",
      "filename": "minimal_example.html",
      "title": "Typical Use of eatATA: a Minimal Example",
      "author": "Benjamin Becker",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Setup",
        "Item Pool",
        "Objective Function",
        "Constraints",
        "Solver usage",
        "Inspect solution"
      ],
      "created": "2021-01-26 17:44:56",
      "modified": "2021-03-26 13:20:32",
      "commits": 9
    },
    {
      "source": "use_case_pilot_study.Rmd",
      "filename": "use_case_pilot_study.html",
      "title": "Typical Use of eatATA: a Pilot Study Example",
      "author": "Benjamin Becker, Dries Debeer",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Setup",
        "Item pool",
        "Prepare item information",
        "ATA goal",
        "Objective Function",
        "Set up constraints",
        "Run solver",
        "Inspect Solution",
        "Save as Excel"
      ],
      "created": "2021-02-04 17:01:05",
      "modified": "2025-11-14 13:27:00",
      "commits": 6
    }
  ],
  "_score": 6.269512944217916,
  "_indexed": true,
  "_nocasepkg": "eatata",
  "_universes": [
    "beckerbenj"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "1.1.2.9001",
      "date": "2026-07-18T08:48:12.000Z",
      "distro": "resolute",
      "commit": "ee4366383130a7e02f82664d1e3f1e379435e175",
      "fileid": "https://r2.ropensci.org/5c4352c08408096be869de7014f3b5953b5bc92ef294823ac31fa0144a1e1623",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/beckerbenj/actions/runs/29637913529"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "1.1.2.9001",
      "date": "2026-07-18T08:48:15.000Z",
      "distro": "resolute",
      "commit": "ee4366383130a7e02f82664d1e3f1e379435e175",
      "fileid": "https://r2.ropensci.org/78652d54e662d9ff6bf3ec3f45a5193afd3529f85f05304fe0f238c67d3741db",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/beckerbenj/actions/runs/29637913529"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "1.1.2.9001",
      "date": "2026-07-18T08:51:25.000Z",
      "commit": "ee4366383130a7e02f82664d1e3f1e379435e175",
      "fileid": "https://r2.ropensci.org/760c24791f26b9196724643be147f4921ce39eb631c9c94ba7b5824f6ba71490",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/beckerbenj/actions/runs/29637913529"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "1.1.2.9001",
      "date": "2026-07-18T08:50:59.000Z",
      "commit": "ee4366383130a7e02f82664d1e3f1e379435e175",
      "fileid": "https://r2.ropensci.org/b964fbea21b6b67aa59444d9145ae199e7eac4518192b3d8b8f17c42a20eef92",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/beckerbenj/actions/runs/29637913529"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "1.1.2.9001",
      "date": "2026-07-18T08:48:09.000Z",
      "commit": "ee4366383130a7e02f82664d1e3f1e379435e175",
      "fileid": "https://r2.ropensci.org/b55ffb743c4153a5050ec54599b1110ecf6a4d4eab7ce065d96b8a4c2d163b90",
      "status": "success",
      "buildurl": "https://github.com/r-universe/beckerbenj/actions/runs/29637913529"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "1.1.2.9001",
      "date": "2026-07-18T08:47:19.000Z",
      "commit": "ee4366383130a7e02f82664d1e3f1e379435e175",
      "fileid": "https://r2.ropensci.org/f1c4623bef5e29fbf9e1aabe50615ce9a04e556c9124d96bb44c4d6902188187",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/beckerbenj/actions/runs/29637913529"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "1.1.2.9001",
      "date": "2026-07-18T08:47:41.000Z",
      "commit": "ee4366383130a7e02f82664d1e3f1e379435e175",
      "fileid": "https://r2.ropensci.org/1b159c68cd7016a1176fe49330525431d93b1a360b39089a0bc6b326db2b103a",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/beckerbenj/actions/runs/29637913529"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "1.1.2.9001",
      "date": "2026-07-18T08:47:09.000Z",
      "commit": "ee4366383130a7e02f82664d1e3f1e379435e175",
      "fileid": "https://r2.ropensci.org/e83accb472ceaeb5b94da985e4ab65faa10bec08c4df3134d641a2956e400e1a",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/beckerbenj/actions/runs/29637913529"
    }
  ]
}