Skip to content

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

Description

@VincentGuyader

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 [robustesse] Une colonne booléenne __ok/__eq absente passe silencieusement (all(NULL) == TRUE) #17).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions