                 Changes in version 1.2.0 (2026-09-25)                  

plotArray_gg() changes what it draws by default, so the version is
raised rather than treated as a patch.

Bug Fixes

  - Fix the colour assignment in plotArray_gg() when colors is supplied
    and the data contain missing responses. Missing data occupies a slot
    of its own in the legend, but a supplied vector was recycled across
    every slot without reserving it, so one colour per category left the
    first colour on the missing level and wrapped the last category back
    to the start. The only feedback was a generic "fewer colors
    supplied" warning that did not mention missing data. A vector is now
    read by its length: one colour per valid category leaves the missing
    level at its default, and one colour per level is honoured as
    before.

Improvements

  - plotArray_gg() draws ordered categories with a sequential green ramp
    instead of a qualitative palette. Response categories carry an
    order, and a qualitative palette hides exactly the structure the
    plot exists to show. The ramp runs light to dark, so the category
    index reads as lightness. Binary data keep black and white.

  - Missing responses are drawn in grey rather than black when the
    sequential ramp is in use, where black would read as the darkest
    category.

  - plotArray_gg() draws one shared legend instead of repeating the same
    one inside each panel, and its default position moves from the right
    to the bottom. The array panels are tall and narrow, so a legend
    beside them costs width that the data could use. The guide box is
    given its natural size, so the legend title is no longer clipped.
    Drawing a single panel is unchanged.

  - The default colour of the cluster boundary lines is a dark red for
    ordered categories. White lines, the previous default, disappeared
    into the palest cells of the new ramp.

                 Changes in version 1.1.2 (2026-08-21)                  

Package-wide audit release: three high-severity bug fixes, a set of
robustness fixes, API/validation unification, and internal refactoring.
No exported function signatures change except as noted under Breaking
Changes.

Bug Fixes (high severity)

  - Fix 4PL parameter drop in plotICC_gg() and plotIIC_gg(). The
    parameter-passing used if (n_params == 3) / if (n_params == 4), so
    for 4PL models the lowerAsym parameter was silently dropped (treated
    as 0) and only upperAsym was applied. Curves for IRT(..., model = 4)
    were drawn with the wrong lower asymptote, while the
    plot*_overlay_gg() variants were correct, so the single and overlay
    versions of the same item disagreed. Both sites now use >= as the
    overlay versions do. Added a regression test that checks the drawn
    ICC approaches lowerAsym at low theta.
  - Fix the GRM item information formula in ItemInformationFunc_GRM().
    The previous implementation computed a^2 * sum(P*_k (1 - P*_k)) over
    the boundary probabilities, which is not the Samejima GRM
    information and overstated information by a factor of roughly 2 or
    more across the theta range. The function now computes the correct
    Samejima (1969) information I(theta) = sum_k [P'_k(theta)]^2 /
    P_k(theta) on the logistic metric used by the parent package's
    estimation (no 1.702 scaling constant), verified against numerical
    differentiation. The parent package's own grm_iif() had a related
    set of defects and was fixed in the same form (exametrika > 1.15.0),
    so GRM IIC/TIC plots from ggExametrika match the fixed parent's base
    plots numerically. Affects the GRM branches of plotIIC_gg() and
    plotTIC_gg(). Added a self-contained numerical-Fisher test plus a
    version-guarded agreement test against exametrika::grm_iif().
  - Remove the unconditional rank-axis reversal in plotICBR_gg(),
    plotICRP_gg() (n_ranks - Rank + 1) and plotScoreRank_gg()
    (scale_x_reverse()). The reversal was based on the assumption that
    exametrika always orders rank 1 = high ability, but the parent
    package's rank ordering is data-dependent and its base plots draw
    ranks in natural order. The ggplot versions were therefore mirror
    images of the base plots in the common case. Ranks are now always
    drawn in natural order (rank 1, rank 2, ...), matching
    exametrika::plot(). The contradictory roxygen text about rank
    direction was corrected as well. This changes the x-axis direction
    of existing ICBR/ICRP/ScoreRank plots.

Bug Fixes (robustness)

  - plotTIC_gg() and plotTRF_gg() no longer rely on out-of-range
    data.frame column indexing (data$params[i, 3] returning NULL for
    2PL) and instead branch explicitly on the number of parameters.
  - combinePlots_gg() now validates its inputs: non-list/empty plots,
    non-numeric/NA selectPlots, and indices below 1 are rejected with a
    clear error instead of an obscure subscript error.
  - plotDistractor_gg() validates the items and ranks ranges, and no
    longer errors on items whose correct answer (CA) is NA.
  - plotScoreFreq_gg() no longer runs its threshold loop with 1:(n_ranks
    - 1) when only one rank is present (off-by-one via 1:0); uses
    seq_len().
  - plotArray_gg() boundary lines no longer break when a class or field
    has no members (empty levels dropped from table() produced NA
    breaks); explicit factor levels are used, and n_class gains a
    fallback for missing count fields. The return-value documentation
    now describes the actual behavior (gtable vs list).
  - plotFCRP_gg() (bar style) no longer fails when there are no boundary
    segments to draw (e.g. a single class/rank).
  - plotFieldPIRP_gg() extracts the field number for labels with a regex
    instead of a hard-coded substr(field, 7, 8).
  - plotGraph_gg() validates its input via inherits() instead of
    class(data)[2] position matching, and reads the number of
    classes/ranks through the n_class/Nclass and n_rank/Nrank fallback
    chain like the rest of the package.
  - plotCMP_gg() now redirects LRAordinal/LRArated output to the RMP
    display like other rank-model output (previously it stopped with an
    error); plotRMP_gg() also accepts LRArated.
  - User-supplied colors vectors that are shorter than the number of
    series now consistently warn and recycle across all plot functions
    (previously three behaviors coexisted: silent NA colors, a warning
    plus palette fallback, and a hard ggplot2 error).
  - plotFCBR_gg() falls back to "Rank" when data$msg is missing.
  - tests/testthat/Rplots.pdf is now listed in .Rbuildignore so a stray
    test artifact can no longer slip into the CRAN tarball (recurrence
    of the v0.0.28 issue).

Consistency / Internal Refactoring

  - Cut the CRAN check time. win-builder measured 686 s against CRAN's
    600 s Windows limit, with the tests alone accounting for 484 s
    (71%). The cause was fixture size rather than the number of tests:
    plotRMP_gg() / plotCMP_gg() draw one ggplot per respondent, so the
    LRAordinal and LRArated fixtures built on 3,810 respondents were
    producing 3,810 plots on every call. Those fixtures now use
    a 200-row subset and the LDLRA fixture a 300-row one; the assertions
    are structural and do not depend on the respondent count. The suite
    runs in 38 s locally, down from 72 s, with the same coverage.

  - The examples for plotScoreRank_gg(), plotScoreFreq_gg(),
    plotICRP_gg() and plotICBR_gg() fit an ordinal LRA on J5S1000
    instead of J15S3810. The fit, not the plotting, was the cost: 28 s
    elapsed for plotScoreRank_gg() on Windows, which raised a NOTE for
    exceeding the 10 s example limit. (\donttest{} would not have
    helped; CRAN runs those on the incoming check.)

  - New test-fixtures.R asserts that every fixture builds when
    exametrika is installed. The fixtures are guarded by tryCatch(...,
    NULL) plus skip_if() so the suite survives without the suggested
    package, but that also meant a broken fixture disabled its tests
    silently -- during this release two fixtures were briefly
    over-trimmed and 15 tests vanished while the suite still reported no
    failures.

  - README.Rmd is the source of truth again and README.md is generated
    from it, matching the parent exametrika package. Since 2026-02-17
    the convention here had been inverted: README.md was hand-maintained
    while README.Rmd survived as a stub whose only content was a comment
    asking not to knit it -- a stub that still rendered cleanly, so
    build_readme() would silently overwrite the real README and exit
    successfully. The conversion was verified word-for-word (856 tokens,
    none lost or added) and the round trip is idempotent.
    Development-only; no effect on the installed package, as README.Rmd
    is in .Rbuildignore.

  - Drop the PascalCase field-name fallbacks (Nclass, Nfield, Nrank).
    They were removed from exametrika in 2.0.0 and had been deprecated
    there since 1.8.0, so no version this package supports (>= 1.11.0)
    could reach them. Where the two names remain consulted in sequence
    (n_class then n_rank) that is not a legacy fallback but a real
    distinction: unordered models report the former and ranked ones the
    latter. Verified against exametrika 2.0.0 with the suite unchanged.

  - New internal helpers in R/utils-internal.R: .validate_exametrika()
    (single input-validation idiom; the previous code mixed four idioms,
    two of which either let unrelated exametrika objects through or
    would break when the parent package adds classes to its outputs),
    .resolve_colors(), .resolve_title(), .apply_legend(),
    .variable_scaler() and .axis_scaler() (previously copy-pasted three
    times in IRPtoCMPRMP.R).

  - Consolidated near-identical function pairs into shared internal
    workers: plotCRV_gg()/plotRRV_gg() (.plot_reference_vector()),
    plotLCD_gg()/plotLRD_gg() (.plot_student_distribution()),
    plotCMP_gg()/plotRMP_gg() (.plot_membership_profile()), and
    plotICBR_gg()/plotICRP_gg() (.plot_item_category()). Behavior
    (including redirect warnings) is unchanged; plotCRV_gg/plotRRV_gg
    keep the historical class/rank columns in p$data for backward
    compatibility.

  - Removed a local re-definition of ItemInformationFunc() inside
    plotIIC_gg() that shadowed the exported function.

  - Removed dead code: unreachable is.nan() cleanup in
    plotDistractor_gg(), always-true !is.null(colors)/linetype guards
    after unconditional defaults, and the show_labels = NULL to FALSE
    conversion (the default is now simply FALSE).

  - isTRUE(Num_Students) instead of Num_Students == T; bare
    geom_text_repel() unified to ggrepel::geom_text_repel(); loop
    variable c renamed to avoid shadowing base::c.

  - Removed unused @importFrom entries (guides, guide_legend,
    scale_x_reverse).

  - Documentation fixes: linetype in plotCRV_gg()/plotRRV_gg() is
    documented as a scalar (the vector form promised before was never
    implemented and errored), plotICRF_gg()'s custom title is documented
    as applying to every item's plot, and the ICBR boundary list no
    longer describes a nonexistent "Line K ... always 1.0" line.

  - DESCRIPTION: Suggests: exametrika (>= 1.11.0) (the test fixtures
    require the rated/ordinal biclustering outputs introduced there).

Tests

  - New test-utility-functions.R covering LogisticModel(),
    ItemInformationFunc() (2PL closed form and peak location),
    ItemInformationFunc_GRM() (self-contained numerical-Fisher check,
    binary special case, and a version-guarded agreement test against
    the fixed exametrika::grm_iif()), and a 4PL lowerAsym regression
    test for plotICC_gg().

                 Changes in version 1.1.1 (2026-06-15)                  

New Features

  - plotArray_gg() gains border and border_linewidth arguments (opt-in).
    When border = TRUE, a rectangular panel.border is drawn around each
    of the original and clustered panels so that the two panels are
    visually distinguishable when shown side-by-side. Passing a
    character string to border sets the border colour directly (e.g.
    border = "gray40"). The default is FALSE, so the v1.1.0 unbordered
    look is preserved unless the user opts in.

Breaking Changes

  - Rename misspelled Clusterd* arguments and labels in plotArray_gg()
    to the correct Clustered* spelling. Affects the function arguments
    Clusterd -> Clustered, Clusterd_lines -> Clustered_lines,
    Clusterd_lines_color -> Clustered_lines_color, the auto-generated
    panel title "Clusterd Data" -> "Clustered Data", and the internal
    clusterd_plot object. Vignettes (getting-started.Rmd,
    getting-started-ja.Rmd, plot-gallery.Rmd) and the test file
    test-plotArray_gg.R are updated accordingly. User code that passes
    the old argument names by position is unaffected, but code that
    names them (e.g. Clusterd_lines_color = "blue") must be updated.

Bug Fixes

  - Fix value/label ordering bug in plotCRV_gg() and plotRRV_gg(). The
    long-form plot_data was built with as.vector(t(M)) while the
    accompanying field and class/rank index vectors assumed as.vector(M)
    (column-major) ordering. As a result, the value at each (field,
    class) or (field, rank) point was scrambled and lines no longer
    matched the underlying FRP matrix or expected scores. Affects both
    binary and polytomous biclustering output. Output now matches the
    base-R exametrika::plot(., type = "CRV"/"RRV") numerically.
  - Add regression tests in test-Biclustering-plots.R that verify
    plot_data$value matches FRP[field, class] (binary) and the
    expected-score matrix (polytomous) at every (field, class/rank)
    cell.

                 Changes in version 1.1.0 (2026-04-17)                  

New Features

  - Add plotDistractor_gg() for Distractor Analysis visualization
    (exametrika v1.11.0). Creates stacked bar charts showing response
    category proportions by rank/class, with the correct answer
    highlighted. Supports both LRA (rated) and Biclustering (rated)
    DistractorAnalysis results.
  - Add fixture_DA_lra and fixture_DA_biclust test fixtures and 9 test
    cases in test-distractor-plots.R.

Bug Fixes

  - Replace deprecated sec_axis(trans = ...) with sec_axis(transform =
    ...) in plotTRP_gg, plotLCD_gg, plotLRD_gg (ggplot2 >= 3.5.0).
  - Add \donttest{} to plotScoreFreq_gg example to avoid CRAN time limit
    NOTE on Windows.

ratedBiclustering Support

  - Add support for ratedBiclustering class from exametrika v1.11.0
    (Biclustering with dataType = "rated").
      - Update class validation in 11 plot functions across 5 files:
        plotFRP_gg, plotTRP_gg, plotLCD_gg, plotLRD_gg, plotCMP_gg,
        plotRMP_gg (IRPtoCMPRMP.R), plotFCRP_gg (PolyBiclustering.R),
        plotArray_gg (arraytoLDPSR.R), plotScoreField_gg (ScoreField.R),
        plotCRV_gg, plotRRV_gg (Biclustering.R).
      - Update roxygen2 @param data and @details documentation to
        mention ratedBiclustering.
  - Add fixture_ratedBiclust test fixture in helper-setup.R.
  - Add 10 test cases for ratedBiclustering in
    test-PolyBiclustering-plots.R covering plotFCRP_gg,
    plotScoreField_gg, plotFRP_gg, plotTRP_gg, plotRRV_gg, plotCRV_gg,
    plotArray_gg, plotRMP_gg, plotLRD_gg.

                 Changes in version 1.0.0 (2026-03-29)                  

First CRAN Release

  - Initial CRAN submission. All features from v0.0.1--v0.0.39 are
    included.
  - 31 exported visualization functions covering IRT, GRM, LCA, LRA,
    Biclustering (binary/ordinal/nominal), BNM, LDLRA, LDB, and BINET
    models.
  - All plot functions return ggplot2 objects for easy customization.
  - Common plot options (title, colors, linetype, show_legend,
    legend_position) across all functions.
  - Replace non-ASCII multiplication sign (x) with ASCII 'x' in comments
    and documentation for CRAN compliance.
  - Replace all \dontrun{} with \donttest{} in examples per CRAN review.
  - Make LDB/BINET examples self-contained with proper conf/edges setup.

                       Changes in version 0.0.39                        

DAG Visualization

  - Add BINET (Bicluster Network Model) DAG support to plotGraph_gg().
    This completes the DAG visualization series (BNM → LDLRA → LDB →
    BINET).
  - BINET renders an integrated graph with two node types: Class nodes
    (blue squares, shape=22) and Field nodes (green diamonds, shape=23)
    as intermediates between connected classes.
  - Add .binet_expand_graph() helper to transform BINET's class-only
    graph (all_g) into an expanded graph with Field intermediate nodes
    for TDE-style visualization.
  - Extend .dag_build_plot() with optional node_size_map and
    label_size_map parameters for variable node/label sizes by type
    (backward-compatible: NULL defaults preserve existing behavior).
  - Fix .dag_node_colors() to support multiple node types with custom
    colors (positional or named vectors).
  - Update .dag_build_plot() show.legend from hardcoded FALSE to
    parameter-driven, enabling proper legend display for BINET's
    multi-type nodes.
  - Add node_size_val and label_size_val to globalVariables in zzz.R.
  - Add comprehensive BINET test cases (7 tests) in test-DAG-plots.R:
    basic output, title/colors/legend/direction common options, dual
    node types, and node size differentiation.

                       Changes in version 0.0.38                        

DAG Visualization

  - Add LDB (Local Dependence Biclustering) DAG support to
    plotGraph_gg(). Field nodes are rendered as green diamonds
    (shape=23), distinct from Item nodes (purple circles, shape=21).
    Structure mirrors LDLRA: one plot per rank with isolated node
    removal.
  - Extend .dag_build_plot() to support multiple node types via
    scale_shape_manual() + scale_fill_manual(), preparing for BINET's
    mixed-type graphs.
  - Add LDB test fixture to helper-setup.R using exametrika::LDB() with
    J35S515.
  - Add comprehensive LDB test cases (7 tests) in test-DAG-plots.R:
    basic output, title/colors/legend/direction common options, node
    appearance, and diamond shape verification.
  - Add develop/check_ldb_visual.R for visual comparison of
    BNM/LDLRA/LDB rendering.
  - Fix @param colors roxygen documentation: update "future models
    (LDB/BINET)" to reflect LDB as implemented.
  - Simplify LDB rank count: use data$Nrank directly instead of
    .first_non_null(data$Nrank, data$Nclass) fallback (LDB always
    provides Nrank).
  - Remove duplicate .first_non_null() definition from plotGraph_gg.R
    (already defined in palette.R).

                       Changes in version 0.0.37                        

DAG Visualization

  - Refactor plotGraph_gg(): extract internal helper functions
    (.dag_node_number(), .dag_scale_factors(), .dag_item_color(),
    .dag_compute_layout(), .dag_build_plot()) to eliminate code
    duplication between BNM and LDLRA implementations.
  - Add LDLRA test fixture to tests/testthat/helper-setup.R using
    J12S5000 with a simple 3-rank DAG.
  - Add comprehensive LDLRA test cases to
    tests/testthat/test-DAG-plots.R: basic output,
    title/colors/legend/direction common options, and node appearance
    parameters.
  - Fix node clipping in .dag_build_plot(): add dynamic
    scale_x/y_continuous(expand = expansion(mult = ...)) so nodes are
    never cut off at plot edges. Padding is proportional to node size
    (clamped between 0.20 and 0.45).

Bug Fixes

  - Fix plotTRP_gg() to support nominalBiclustering and
    ordinalBiclustering model types. Previously these models were
    rejected with "Invalid input" error due to class validation using
    exact all(class(data) %in% ...) matching. Replaced with
    data$msg-based xlabel determination, consistent with plotFRP_gg()
    and other functions.
  - Update plotTRP_gg() roxygen2 documentation to list all supported
    model types including nominalBiclustering, ordinalBiclustering, and
    LDLRA.
  - Add tests for plotTRP_gg() with ordinalBiclustering and
    nominalBiclustering fixtures.

Dependencies

  - Raise minimum R version from R (>= 3.5.0) to R (>= 4.1.0). The
    native pipe operator (|>) and lambda syntax (\(x)) are used in some
    dependencies. R >= 4.1.0 is the minimum version that supports these
    features.
  - Remove oldrel-1 (R 4.4.x) from GitHub Actions CI matrix. The ggrepel
    package now requires R >= 4.5.0 on CRAN, causing dependency
    resolution failures on older R versions. CI now tests release and
    devel only.

                       Changes in version 0.0.35                        

Documentation

  - Update exametrika dependency version references from v1.9.0 to
    v1.10.0 across CLAUDE.md (13 occurrences), R source TODO comments (6
    files), and regenerated man pages. This reflects exametrika's
    version renumbering: the previously planned v1.9.0 release will now
    be published as v1.10.0.
  - Move visNetwork/plotGraph_interactive from v1.0.0 scope to v1.1.0+.
    The v1.0.0 release will focus on completing DAG visualization (LDB,
    BINET) with ggraph static plots only.
  - Update v1.0.0 release timeline from "February 2026" to "Spring 2026,
    after exametrika v1.10.0 CRAN publication".
  - Add "v1.1.0 and beyond" section to CLAUDE.md roadmap for visNetwork
    interactive DAG editing feature.

                       Changes in version 0.0.34                        

Documentation

  - Update CLAUDE.md to reflect v0.0.34 state: fix version (v0.0.33 to
    v0.0.34), update dependencies (gridExtra moved from Depends to
    Imports), add CRAN preparation status section, update CRANチェックリスト
    with completed items, update R CMD check result to 0/0/0.
  - Further CLAUDE.md refinement: add complete Export function inventory
    (31 functions with breakdown), add branch status, add R source file
    count, add v1.0.0 release roadmap section, reorganize completed vs
    remaining features for clarity, clean up redundant TODO sections
    where all items are completed.

CRAN Submission Preparation

  - Fix typo in DESCRIPTION: "pacakge" to "package".
  - Change Title to Title Case with quoted software names:
    "Visualization of 'exametrika' Output Using 'ggplot2'".
  - Rewrite Description field to follow CRAN conventions: starts with
    verb, no markdown links, includes ISBN reference for Shojima (2022).
  - Remove non-standard Reference field from DESCRIPTION. Reference
    information is now included in the Description field.
  - Move gridExtra from Depends to Imports (CRAN recommends minimizing
    Depends).
  - Add R (>= 3.5.0) to Depends for minimum R version requirement.
  - Fix .Rbuildignore pattern for CLAUDE.md to be case-insensitive
    (^[Cc][Ll][Aa][Uu][Dd][Ee]\.md$).
  - Add ^cran-comments\.md$ to .Rbuildignore.
  - Create cran-comments.md for initial CRAN submission.
  - Update LICENSE year from 2023 to 2023-2026.
  - Add R-CMD-check and MIT license badges to README.md.

                       Changes in version 0.0.33                        

R CMD check Fixes

  - Add LICENSE file (YEAR/COPYRIGHT HOLDER format) for CRAN compliance.
    DESCRIPTION specifies License: MIT + file LICENSE, which requires a
    LICENSE file (not just LICENSE.md).
  - Wrap J35S500 examples in \dontrun{} to avoid R CMD check failures
    when exametrika < 1.9.0 is installed. J35S500 dataset is only
    available in exametrika >= 1.9.0 (not yet on CRAN). Affected
    functions: plotFCBR_gg(), plotFCRP_gg(), plotScoreField_gg(),
    plotFRP_gg(), plotCRV_gg(), plotRRV_gg(). TODO: revert after
    exametrika v1.9.0 is released on CRAN.
  - Remove LazyData: true from DESCRIPTION (package has no data
    directory).
  - Remove VignetteBuilder: knitr and knitr/rmarkdown from Suggests (no
    vignettes after migration to pkgdown articles).
  - Comprehensive NSE (Non-Standard Evaluation) global variable
    declarations in R/zzz.R via utils::globalVariables(). Covers all
    ggplot2 aes() and tidyr NSE variables across all plot functions (30+
    variables). Previously only value was declared.
  - Add @importFrom for missing function imports: stats::ave,
    stats::median, stats::setNames, utils::tail, ggplot2::geom_segment,
    ggplot2::sec_axis, ggplot2::scale_fill_gradientn,
    ggplot2::scale_x_reverse, tidyr::all_of. Resolves all "no visible
    global function definition" NOTEs.
  - Add github::kosugitti/exametrika to R-CMD-check.yaml and
    test-coverage.yaml extra-packages. CRAN version (v1.8.1) lacks
    v1.9.0 datasets; examples with @examplesIf + \dontrun{} do not
    correctly suppress execution due to withAutoprint interaction.

CI / Infrastructure Fixes

  - Fix _pkgdown.yml: use '"articles/name"' syntax for article
    references in contents. pkgdown evaluates contents entries as R
    expressions, so bare plot-gallery was parsed as plot - gallery
    (subtraction). Additionally, pkgdown prefixes article names with
    articles/ for files in vignettes/articles/.
  - Move getting-started.Rmd and getting-started-ja.Rmd from vignettes/
    to vignettes/articles/ as pkgdown-only articles. Remove vignette
    YAML metadata (\VignetteIndexEntry, \VignetteEngine,
    \VignetteEncoding) and output: rmarkdown::html_vignette. This
    resolves R CMD check vignette build errors caused by exametrika
    dependency during check.
  - Add ^vignettes/articles$ to .Rbuildignore to exclude pkgdown-only
    articles from package build.
  - Update test-coverage.yaml: upgrade codecov/codecov-action from v4 to
    v5, add print(cov) for log output, add testthat output display and
    failure artifact upload steps, update parameter names for v5
    compatibility (file to files, plugin to plugins). Set
    fail_ci_if_error: false for codecov upload to avoid CI failure when
    CODECOV_TOKEN is not configured.
  - Update pkgdown.yaml: install exametrika from GitHub
    (github::kosugitti/exametrika) to ensure v1.9.0 datasets (e.g.,
    J35S500) are available for article rendering.

GitHub Pages / pkgdown (Phase 3)

  - Add Plot Gallery article (vignettes/articles/plot-gallery.Rmd) as a
    pkgdown-only article showcasing all 27 visualization functions with
    live rendered examples. The gallery is organized into 7 sections:
    IRT Models, GRM, Latent Class/Rank Analysis, Biclustering
    (binary/ordinal/nominal), LRAordinal/LRArated, Network Models (DAG),
    and Common Options Demo.
  - Uses six sample datasets (J15S500, J5S1000, J35S515, J35S500,
    J20S600, J15S3810) covering binary, ordinal, and nominal response
    types, and 8 model types (IRT, GRM, LCA, LRA, LRAordinal,
    Biclustering, ordinal Biclustering, nominal Biclustering). Network
    models (BNM, LDLRA, LDB, BINET) are shown as reference code only
    (eval=FALSE) since they require explicit graph structure input.
  - Add Plot Gallery to _pkgdown.yml navbar menu (displayed at the top
    of the Articles dropdown) and articles section.

Vignette Bug Fixes

  - Remove incorrect plotFRP_gg(result_lca) and plotFRP_gg(result_lra)
    calls from both English and Japanese getting-started vignettes.
    plotFRP_gg() requires Biclustering-family models; LCA/LRA do not
    produce FRP output (exametrika valid_types declaration is
    incorrect).
  - Replace non-existent OrdinalData dataset with J35S500 in ordinal
    Biclustering example.
  - Fix color = to colors = in plotTIC_gg() customization example
    (parameter name mismatch).
  - Fix rankdir = to direction = and remove non-existent
    node_color/edge_color parameters from plotGraph_gg() customization
    example.
  - Set LDLRA, LDB, and BINET plotGraph_gg() examples to eval = FALSE
    with "coming soon" notes, as DAG visualization currently supports
    BNM only.
  - Fix plotFRP_gg() usage in vignettes: the function returns a single
    ggplot object, not a list. Removed incorrect [[1]] indexing and
    combinePlots_gg() calls.
  - Set BNM, LDLRA, LDB, and BINET model fitting and all dependent plot
    chunks to eval = FALSE in both vignettes. BNM requires explicit
    graph input; LDLRA/LDB/BINET are computationally expensive and have
    unresolved API issues with current exametrika version.
  - Set devtools::install_github() chunks to eval = FALSE in both
    vignettes. devtools is not available during R CMD check.
  - Replace non-existent OrdinalData dataset with J35S500 in
    plotFCBR_gg() and plotFRP_gg() roxygen examples.
  - Fix plotFCBR_gg() example: fields = 1:6 exceeded nfld = 5, and
    colors had 4 values for 5-category data. Changed to fields = 1:5 and
    added 5th color.
  - Add missing library(exametrika) to plotFCRP_gg() and
    plotScoreField_gg() roxygen examples.
  - Change plotFieldPIRP_gg() and plotLDPSR_gg() examples from
    @examplesIf to @examples with \dontrun{}. LDB and BINET require
    explicit graph structure input that cannot be created in simple
    examples.

GitHub Pages / pkgdown (Phase 2)

  - Change vignettes (getting-started.Rmd, getting-started-ja.Rmd) from
    eval = FALSE to eval = requireNamespace("exametrika", quietly =
    TRUE). Vignette code chunks now execute automatically when
    exametrika is installed, producing live output on pkgdown site,
    while still being skipped gracefully when unavailable.
  - Add nomBiclust (nominalBiclustering) column to Function-Model
    Compatibility Matrix in both English and Japanese vignettes.
  - Add three new function rows to the compatibility matrix: plotFCRP_gg
    (v1.9.0), plotScoreField_gg (v1.9.0), plotLDPSR_gg (v0.0.32).
  - Fix missing ordBiclust marks in the compatibility matrix for
    plotFRP_gg, plotLRD_gg, plotCRV_gg, and plotRRV_gg. These functions
    natively accept ordinalBiclustering in their validation code but
    were not marked in the matrix.
  - Fix missing LDLRA mark for plotTRP_gg in the compatibility matrix.
    The function accepts LDLRA in its validation code but was not
    marked.

GitHub Pages / pkgdown (Phase 1)

  - Migrate @examples + \dontrun{} to @examplesIf
    requireNamespace("exametrika", quietly = TRUE) for all 28 plot
    functions. Examples now run automatically when exametrika is
    installed (improving pkgdown reference pages with live output) while
    still being skipped gracefully when exametrika is unavailable.
  - Three pure utility functions (LogisticModel, ItemInformationFunc,
    ItemInformationFunc_GRM) retain @examples since they have no
    exametrika dependency.
  - Add plotLDPSR_gg to _pkgdown.yml reference section under "DAG &
    Network Model Plots".
  - Rename "DAG Visualization" section to "DAG & Network Model Plots" in
    _pkgdown.yml to better reflect the inclusion of BINET-specific
    profile plots.
  - Add figures section to _pkgdown.yml with explicit dimensions
    (fig.width=7, fig.height=5, dpi=96, fig.retina=2) for consistent
    example plot rendering on GitHub Pages.

                       Changes in version 0.0.32                        

New Features

  - Add plotLDPSR_gg() for Local Dependence Passing Student Rate (LDPSR)
    visualization (BINET only). LDPSR shows item-level correct response
    rate profiles comparing parent and child classes at each DAG edge,
    visualizing how students improve when transitioning between latent
    classes via a specific field.
  - plotLDPSR_gg() supports common plot options (title, colors,
    linetype, show_legend, legend_position).
  - Returns a list of ggplot objects (one per DAG edge), compatible with
    combinePlots_gg().

Test Infrastructure

  - Add BINET test fixture to helper-setup.R using J35S515 with 3
    classes, 5 fields, and a simple chain DAG structure.
  - Add test-LDPSR-plots.R with comprehensive tests: basic
    functionality, common options, input validation, model type
    rejection, and combinePlots_gg integration.
  - Add plotLDPSR_gg validation entry to test-validation.R.

                       Changes in version 0.0.31                        

Bug Fixes

  - Fix legend control in plotICBR_gg(), plotICRP_gg(), plotFCRP_gg(),
    and plotFRP_gg(): legend.position was unconditionally applied in the
    initial theme() call, then show_legend = FALSE attempted to override
    it in a separate theme() layer. Replaced with a single conditional
    block for consistent behavior.

CRAN Compliance

  - Convert all Japanese comments in R source files to English (9 files,
    ~100 comments). Non-ASCII characters in source code cause encoding
    warnings in R CMD check --as-cran.
  - Translate Japanese text in NEWS.md v0.0.29 entry to English.

                       Changes in version 0.0.30                        

Bug Fixes

  - Fix plotRMP_gg() to support LRAordinal and LRArated model types.
    Previously these models were rejected with "Invalid input" error
    despite having valid Students/Membership data.
  - Add polytomous (multi-valued) data support to plotCRV_gg() with stat
    parameter ("mean", "median", "mode"), matching the existing
    plotRRV_gg() functionality. For binary data, backward compatibility
    is fully maintained.
  - Add show_labels parameter to plotCRV_gg() for displaying class
    labels using ggrepel.
  - For polytomous CRV, Y-axis automatically adjusts to "Expected Score
    (stat)" with range 1-maxQ. Title includes stat name.

CI / Test Infrastructure

  - Add GitHub Actions workflow R-CMD-check.yaml for multi-platform R
    CMD check (macOS, Windows, Ubuntu with R release/devel/oldrel-1).
  - Add GitHub Actions workflow test-coverage.yaml for covr test
    coverage with optional Codecov upload.
  - Fix BNM test fixture in helper-setup.R: BNM requires a DAG graph
    argument (g). Added igraph DAG creation for J5S10 dataset. This
    resolves 4 previously skipped DAG tests.
  - Add tests for plotRMP_gg() with LRAordinal/LRArated models.
  - Update plotCRV_gg() tests: replace error-expectation test with
    polytomous support tests (stat, show_labels).
  - Remove Dropbox conflict copy artifact from tests/testthat/.
  - Test results: FAIL 0 | WARN 22 | SKIP 0 | PASS 452 (previously 433
    PASS + 4 SKIP).

Documentation

  - Update CLAUDE.md: Correct FRP model support table. exametrika's
    plot.exametrika valid_types declares FRP as valid for LCA and LRA,
    but neither LCA() nor LRA() actually produce a $FRP field in their
    output. The plotFRP_gg() correctly rejects these models. Added
    annotation (*1) to model compatibility tables documenting this
    exametrika-side inconsistency.

                       Changes in version 0.0.29                        

Documentation

  - Comprehensive README.md update to reflect current implementation
    status
      - Add nominalBiclustering, ordinalBiclustering, LRAordinal,
        LRArated to model list
      - Reorganize Function-Model compatibility table into 4 sections
        (IRT/GRM, LCA/LRA, Biclustering, Network) with accurate coverage
        for all functions and models
      - Add previously unlisted functions: plotICC_overlay_gg,
        plotIIC_overlay_gg, plotFCRP_gg, plotFCBR_gg, plotScoreField_gg,
        plotScoreFreq_gg, plotScoreRank_gg, plotICRP_gg, plotICBR_gg
      - Fix missing marks in compatibility table (plotFRP_gg LCA/LRA
        support, plotLCD_gg/plotCMP_gg Biclustering support, plotRMP_gg
        BINET support, etc.)
      - Add usage examples for LRAordinal/LRArated, polytomous
        Biclustering, and overlay functions
      - Add function-specific parameters (stat, style, show_labels) to
        Common Plot Options section
      - Remove broken link to non-existent Japanese guide

                       Changes in version 0.0.28                        

Test Infrastructure Setup

Comprehensive testthat test suite for all 26 exported plot functions.

  - Create helper-setup.R with shared test fixtures (IRT 2PL/3PL, GRM,
    LCA, LRA, Biclustering binary/ordinal/nominal, LRAordinal, LRArated,
    BNM). Fixtures computed once and shared across all test files.
  - Add 10 new test files covering all plot function families:
      - test-IRT-plots.R: plotICC_gg, plotTRF_gg, plotICC_overlay_gg
      - test-IIC-TIC-plots.R: plotIIC_gg, plotTIC_gg, plotIIC_overlay_gg
        (IRT + GRM)
      - test-GRM-plots.R: plotICRF_gg
      - test-LCA-LRA-plots.R: plotIRP_gg, plotTRP_gg, plotLCD_gg,
        plotLRD_gg, plotCMP_gg, plotRMP_gg
      - test-Biclustering-plots.R: plotFRP_gg, plotCRV_gg, plotRRV_gg
        (binary + polytomous)
      - test-PolyBiclustering-plots.R: plotFCRP_gg, plotFCBR_gg,
        plotScoreField_gg
      - test-LRAordinal-plots.R: plotScoreFreq_gg, plotScoreRank_gg,
        plotICRP_gg, plotICBR_gg
      - test-DAG-plots.R: plotGraph_gg (BNM)
      - test-utility.R: combinePlots_gg
      - test-validation.R: Cross-cutting input validation for all 24+
        plot functions
  - Add input validation tests for all functions: NULL, data.frame,
    numeric, character, list inputs and wrong model type cross-checks.
  - Add common options tests for all functions: title
    (TRUE/FALSE/custom), colors, linetype, show_legend, legend_position.
  - Remove empty legacy test files (test_ICCtoTIC.R, test_IRPtoCMPRMP.R,
    test_option.R) and Rplots.pdf artifact.
  - Total: 433 PASS, 0 FAIL, 22 WARN (ggplot2 deprecation only), 4 SKIP
    (BNM fixture unavailable).

                       Changes in version 0.0.27                        

Common Options Unification

Add common plot options (title, colors, linetype, show_legend,
legend_position) to 11 functions for API consistency.

Fully new common options (6 functions)

  - Add common options to plotICC_gg(): title (logical/character),
    colors, linetype, show_legend, legend_position. Also add items
    parameter for selecting which items to plot.
  - Add common options to plotTRF_gg(): title (logical/character),
    colors, linetype, show_legend, legend_position.
  - Add common options to plotIRP_gg(): title (logical/character),
    colors, linetype (default: "dashed"), show_legend, legend_position.
  - Add common options to plotCMP_gg(): title (logical/character),
    colors, linetype (default: "dashed"), show_legend, legend_position.
  - Add common options to plotRMP_gg(): title (logical/character),
    colors, linetype (default: "dashed"), show_legend, legend_position.
  - Add common options to plotFieldPIRP_gg(): title (logical/character),
    colors (per-field), linetype, show_legend, legend_position.

Supplemented missing options (4 functions)

  - Rename color to colors in plotTIC_gg() for API consistency. Add
    show_legend and legend_position parameters.
  - Add colors, linetype, show_legend, legend_position to plotTRP_gg().
    Extend title to support character strings. colors[1]=bar fill,
    colors[2]=line/point color.
  - Add colors, linetype, show_legend, legend_position to plotLCD_gg().
    Extend title to support character strings. colors[1]=bar fill,
    colors[2]=line/point color.
  - Add colors, linetype, show_legend, legend_position to plotLRD_gg().
    Extend title to support character strings. colors[1]=bar fill,
    colors[2]=line/point color.

DAG visualization (1 function)

  - Add title (logical/character), colors (node fill), show_legend,
    legend_position to plotGraph_gg(). Note: linetype is not applicable
    to DAG edge arrows.

                       Changes in version 0.0.26                        

  - Fix plotCMP_gg() and plotRMP_gg() to access Students columns by name
    (Membership *) instead of index position. Prevents column-shift bugs
    when exametrika adds columns (e.g., Estimate).
  - Fix plotCMP_gg() and plotRMP_gg() $Nclass reference to fallback
    chain: n_class -> Nclass -> n_rank -> Nrank. Now accepts
    LRA/Biclustering objects without errors.
  - Migrate $Nclass/$Nfield references in plotArray_gg() and
    plotFieldPIRP_gg() to new naming convention (n_class/n_field/n_rank)
    with fallback to deprecated names (Nclass/Nfield/Nrank).
  - Add internal utility .first_non_null() for safe fallback chains
    across naming conventions.
  - Fix plotTRP_gg(), plotLCD_gg(), plotLRD_gg() to use LCD/LRD fallback
    chains. LRA and LDLRA models (which have $LRD but not $LCD) now work
    correctly with all three functions.
  - Add LDLRA support to plotTRP_gg() (previously missing from valid
    model types).
  - Fix plotArray_gg() single-panel return value: when only Original =
    FALSE or Clusterd = FALSE, the function now correctly returns a list
    with the single plot at index 1 (previously stored at index 2 when
    only Clusterd was TRUE, causing plot[[1]] to be NULL).
  - Full backward compatibility maintained with older exametrika
    versions.

                       Changes in version 0.0.25                        

  - Fix class validation in plotLCD_gg(), plotLRD_gg(), plotCMP_gg(),
    and plotRMP_gg() to support polytomous biclustering models.
  - Add support for ordinalBiclustering and nominalBiclustering classes
    in LCD, LRD, CMP, and RMP plots.
  - Change class validation from all(class(data) %in% c(...)) to
    any(class(data) %in% c(...)) for better compatibility.
  - Add inherits(data, "exametrika") check for more robust input
    validation.
  - Full backward compatibility maintained for binary Biclustering, LCA,
    LRA, LDLRA, LDB, and BINET models.

                       Changes in version 0.0.24                        

  - Add multi-valued (polytomous) data support to plotRRV_gg() and
    plotCRV_gg() for ordinal/nominal Biclustering.
  - Add stat parameter to plotRRV_gg() and plotCRV_gg() for polytomous
    data: "mean" (default), "median", or "mode".
  - Add show_labels parameter to plotRRV_gg() and plotCRV_gg() (default:
    FALSE) for displaying rank/class labels using ggrepel.
  - Add ggrepel to Imports for automatic label positioning without
    overlaps.
  - Y-axis automatically adjusts: 0-1 for binary data (Correct Response
    Rate), 1-maxQ for polytomous data (Expected Score).
  - Title automatically includes stat name for polytomous data (e.g.,
    "Rank Reference Vector (mean)").
  - Full backward compatibility maintained for binary Biclustering
    models.

                       Changes in version 0.0.23                        

  - Add plotFCRP_gg() for Field Category Response Profile (FCRP)
    visualization (exametrika v1.9.0 feature).
  - FCRP displays category response probability profiles for each field
    across latent classes/ranks in polytomous biclustering models
    (ordinalBiclustering, nominalBiclustering).
  - Support two visualization styles: "line" (default, line plot with
    points) and "bar" (stacked bar chart).
  - For bar style, add category boundary transition lines (dashed lines
    connecting adjacent bars).
  - Support common plot options (title, colors, linetype, show_legend,
    legend_position).
  - Requires 3+ response categories (use plotFRP_gg for binary data).
  - Completes exametrika v1.9.0 polytomous biclustering feature set
    (FCBR, ScoreField, FCRP all implemented).

                       Changes in version 0.0.22                        

  - Add multi-valued data support to plotFRP_gg() (Field Reference
    Profile).
  - Add stat parameter for polytomous data: "mean" (weighted average),
    "median", "mode".
  - Support ordinalBiclustering and nominalBiclustering in addition to
    binary Biclustering/IRM/LDB/BINET.
  - Change return value from list to single ggplot object showing all
    fields.
  - Add common plot options (title, colors, linetype, show_legend,
    legend_position) to plotFRP_gg().
  - For binary data: displays correct response rate (0-1).
  - For polytomous data: displays expected score calculated using
    selected stat method.
  - Add comprehensive test suite (develop/test_FRP_multivalue.R)
    covering binary/ordinal/nominal data.

                       Changes in version 0.0.21                        

  - Add plotScoreField_gg() for Score-Field heatmap visualization
    (exametrika v1.9.0 feature).
  - plotScoreField_gg() displays expected scores for each field across
    latent classes/ranks in polytomous biclustering models
    (nominalBiclustering, ordinalBiclustering).
  - Expected score calculation: sum of (category × probability) for each
    field-class/rank combination.
  - Support common plot options (title, colors, show_legend,
    legend_position).
  - Add show_values parameter to toggle display of score values on
    heatmap cells.
  - Add text_size parameter to control size of value labels.
  - Uses colorblind-friendly yellow-orange-red gradient by default.

                       Changes in version 0.0.20                        

  - Add plotFCBR_gg() for Field Cumulative Boundary Reference (FCBR)
    visualization (ordinalBiclustering).
  - FCBR shows cumulative probability curves for each category boundary
    across latent classes/ranks.
  - Support common plot options (title, colors, linetype, show_legend,
    legend_position) in plotFCBR_gg().
  - FCBR displays ALL boundary probabilities including P(Q>=1)
    (always 1.0), P(Q>=2), P(Q>=3), etc.
  - P(Q>=1) appears as a horizontal line at the top (y=1.0) for
    reference.

                       Changes in version 0.0.19                        

  - Add plotScoreRank_gg() for Score-Rank heatmap visualization
    (LRAordinal, LRArated).
  - Support common plot options (title, colors, show_legend,
    legend_position) in plotScoreRank_gg().

                       Changes in version 0.0.18                        

  - Add plotICBR_gg() for Item Category Boundary Response (ICBR)
    visualization (LRAordinal).
  - Add plotICRP_gg() for Item Category Reference Profile (ICRP)
    visualization (LRAordinal, LRArated).
  - Both functions support common plot options (title, colors, linetype,
    show_legend, legend_position).
  - ICBR shows cumulative probability curves for each category boundary
    across latent ranks.
  - ICRP shows response probability curves for each category across
    latent ranks (probabilities sum to 1.0).
  - Add tidyr to Imports for data transformation in plotICBR_gg() and
    plotICRP_gg().

                       Changes in version 0.0.17                        

  - Add plotIIC_overlay_gg() for overlaying all Item Information Curves
    (IIC) on a single plot (IRT/GRM).
  - plotIIC_overlay_gg() supports both IRT and GRM models.
  - plotIIC_overlay_gg() supports common plot options (title, colors,
    linetype, show_legend, legend_position).
  - Similar to plot(IRT_result, type = "IIF", overlay = TRUE) in
    exametrika, but returns a ggplot2 object.

                       Changes in version 0.0.16                        

  - Add plotICC_overlay_gg() for overlaying all Item Characteristic
    Curves (ICC) on a single plot (IRT).
  - plotICC_overlay_gg() supports common plot options (title, colors,
    linetype, show_legend, legend_position).
  - Similar to plot(IRT_result, type = "IRF", overlay = TRUE) in
    exametrika, but returns a ggplot2 object.

                       Changes in version 0.0.15                        

  - Add plotScoreFreq_gg() for Score Frequency Distribution (LRAordinal,
    LRArated).
  - Common plot options (title, colors, linetype, show_legend,
    legend_position) supported.

                       Changes in version 0.0.14                        

  - Add multi-valued data support to plotArray_gg() for ordinal/nominal
    Biclustering.
  - Add common plot options (title, colors, show_legend,
    legend_position) to plotArray_gg().
  - Add Clusterd_lines_color parameter to plotArray_gg() for customizing
    boundary line colors (default: red for binary data, white for
    multi-valued data).
  - plotArray_gg() now automatically detects the number of categories
    and uses appropriate color palettes.
  - For binary data (0/1), uses white/black colors. For multi-valued
    data (2+ categories), uses a colorblind-friendly palette.
  - Add special handling for missing values (-1): displayed as "NA" in
    legend with black color.
  - Fix plot margins and title spacing to prevent overlapping in
    side-by-side displays.
  - Fix boundary lines to stay within plot area using proper coordinate
    limits.
  - Fix boundary line positions in plotArray_gg() to align exactly with
    class/field boundaries.
  - CRITICAL FIX: Correct row sorting order in plotArray_gg() to match
    exametrika's original implementation. Now uses order(ClassEstimated,
    decreasing = FALSE) with reversed rown for proper visual alignment
    (higher class numbers at bottom).

                       Changes in version 0.0.13                        

  - Add GRM support to plotIIC_gg() for Item Information Curve (IRT and
    GRM).
  - Add GRM support to plotTIC_gg() for Test Information Curve (IRT and
    GRM).
  - Add ItemInformationFunc_GRM() for computing GRM item information.
  - Add common plot options (title, colors, linetype, show_legend,
    legend_position) to plotIIC_gg() and plotTIC_gg().

                       Changes in version 0.0.12                        

  - Add plotCRV_gg() for Class Reference Vector (CRV) visualization
    (Biclustering).
  - Add plotRRV_gg() for Rank Reference Vector (RRV) visualization
    (Biclustering).
  - Both functions support common plot options (title, colors, linetype,
    show_legend, legend_position).

                       Changes in version 0.0.11                        

  - Add plotICRF_gg() for Item Category Response Function (GRM)
    visualization.
  - Add .gg_exametrika_palette() as package-wide default color palette
    (ColorBrewer Dark2).
  - Add common plot options (title, colors, linetype, show_legend,
    legend_position) to plotICRF_gg().
  - Fix y-axis on all probability plots to always display 0.00 and 1.00
    with breaks at 0.25 intervals.

                       Changes in version 0.0.10                        

  - Add plotTRF_gg() for Test Response Function (TRF) visualization in
    IRT models.

                        Changes in version 0.0.9                        

  - Add plotGraph_gg() for DAG visualization using ggraph.
  - Expand help documentation for all functions.
  - Apply styler::style_pkg() for consistent code formatting.
  - Fix compatibility with current exametrika package.
  - Add pkgdown site and GitHub Actions workflow.

                        Changes in version 0.0.8                        

  - Add plotArray_gg() for array plot (Biclustering, IRM, LDB, BINET).
  - Add plotFieldPIRP_gg() for Field PIRP plot (LDB).

                        Changes in version 0.0.7                        

  - Add plotTRP_gg() for Test Reference Profile (LCA, LRA, Biclustering,
    IRM, LDLRA, LDB, BINET).
  - Add plotLCD_gg() for Latent Class Distribution (LCA, Biclustering).
  - Add plotLRD_gg() for Latent Rank Distribution (LRA, Biclustering,
    LDLRA, LDB, BINET).
  - Add plotCMP_gg() for Class Membership Profile (LCA, Biclustering,
    BINET).
  - Add plotRMP_gg() for Rank Membership Profile (LRA, Biclustering,
    LDLRA, LDB, BINET, LRAordinal, LRArated).

                        Changes in version 0.0.6                        

  - Add plotIRP_gg() for Item Reference Profile (LCA, LRA, LDLRA).
  - Add plotFRP_gg() for Field Reference Profile (LCA, LRA,
    Biclustering, IRM, LDB, BINET).

                        Changes in version 0.0.5                        

  - Add plotICC_gg() for Item Characteristic Curve (IRT: 2PL, 3PL, 4PL).
  - Add plotIIC_gg() for Item Information Curve (IRT: 2PL, 3PL, 4PL).
  - Add plotTIC_gg() for Test Information Curve (IRT: 2PL, 3PL, 4PL).
  - Add LogisticModel() for four-parameter logistic model computation.
  - Add ItemInformationFunc() for item information function computation.
  - Add combinePlots_gg() utility for arranging multiple plots in a
    grid.

                        Changes in version 0.0.1                        

  - Initial package setup.
