ThinkR-open / ThinkR-open/datadiff

[tests] Suite de tests : doublon octet pour octet, écritures dans le répertoire courant (politique CRAN), test « huge parquet » mort, redondances massives

Open
#31 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
R
Stars
6
Forks
0
PR merge metrics
No merged PRs in 30d

Description

Contexte

L'audit de la suite (26 fichiers test-*.R, ~355 test_that) relève :

  1. Doublon exact : test-key-parameter.R:1-45 et :249-293 — même titre, même corps, dupliqué octet pour octet (« uses key parameter over YAML rules »).
  2. Écritures dans le répertoire courant : test-key-parameter.R:29, 61, 88, 126, 277 font writeLines(..., "test_key_param.yaml") sans tempfile() ni on.exit() — contredit NEWS 0.4.4 (« all test files: replace hardcoded YAML paths with tempfile() ») et la politique CRAN. Les fixtures commitées tests/testthat/rules.yaml et test.yaml ne sont référencées par aucun test (restes probables de tels échecs).
  3. Test mort : test-huge-parquet.R est inexécutable partout — skip_on_ci + variable d'env RUN_HUGE_PARQUET_TEST + chemins Windows en dur D:\things_reboot\data_a. Le paramètre duckdb_memory_limit n'a par ailleurs aucun test.
  4. Redondances compressibles : IEEE 754 testé en 7 copies quasi identiques (test-tolerance.R:580-656) en plus du kernel ; NA/NaN/Inf testés à 3 niveaux (kernel / add_tolerance_columns / ok) ; doublons de clés testés dans 3 fichiers dont 2 quasi identiques (test-key-parameter.R:139-330 vs test-edge-cases.R:238-345) ; paramètres d'extraction retestés dans test-main-integration.R ; test-parquet.R : 20 paires table/dataset non factorisées.
  5. Assertions conditionnelles silencieuses : test-extraction-params.R multiplie if (length(extracts) > 0) { expect_...() } — un test peut passer sans rien vérifier.
  6. Fonctions sans test direct : tol_col_bool/eq_col_bool/tol_col_passes/eq_col_passes, tol_col_counts/eq_col_counts, format_key_examples, lazy_nrow, is_non_local/is_arrow/arrow_dataset_to_duckdb, branche file = NULL de datadiff_report_html, gardes requireNamespace.

Critères de succès

  • Doublon supprimé ; test-key-parameter.R migré sur tempfile() + on.exit(unlink()) ; fixtures orphelines supprimées ou utilisées.
  • test-huge-parquet.R : soit paramétré portable (fixtures générées, tailles réduites), soit déplacé hors de tests/ (dev/) ; duckdb_memory_limit obtient au moins un test de fumée.
  • Redondances réduites via helpers/purrr::walk paramétrés (objectif indicatif : -30 % de lignes sans perte de couverture).
  • Plus d'expect_ conditionnel silencieux (assertion sur la précondition d'abord).
  • Les helpers internes listés au point 6 ont chacun un test unitaire direct (dont les cas d'erreur des nouvelles gardes issue #17).

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the duplicated and unsafe cases in tests/testthat/test-key-parameter.R, then inspect test-huge-parquet.R and test-extraction-params.R. Run the testthat suite while consolidating the listed redundancies and adding direct coverage for the named helpers. Done means the duplicate, repository writes, dead or non-portable test, silent conditional assertions, and uncovered helper cases are addressed without losing coverage.

Written by the indexing model from the issue text.

Assessment

Tech stack
r
Domain
testing-qa
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.