Contexte
Le champ YAML equal_mode n'est lu qu'à un seul endroit (R/preprocessing.R:49-54), où identical(eq_mode, "normalized") active une branche qui appelle normalize_text(case_insensitive = FALSE, trim = FALSE) — c'est-à-dire l'identité. Et pour date/datetime/logical, le garde is.character() court-circuite de toute façon. La normalisation ne dépend en réalité que de case_insensitive et trim.
Conséquences :
character_equal_mode, date_equal_mode, datetime_equal_mode, logical_equal_mode de write_rules_template() sont des paramètres sans aucun effet sur le verdict ;
- un utilisateur écrivant
equal_mode: normalized seul dans son YAML croit activer une normalisation et n'obtient rien — comportement même verrouillé par un test (test-utils.R:50-59) ;
- la doc laisse croire que
equal_mode pilote quelque chose.
Reprex
library(datadiff)
ref <- data.frame(id = 1:2, s = c("A", " b"))
cand <- data.frame(id = 1:2, s = c("a", "b"))
path <- tempfile(fileext = ".yaml")
writeLines('
version: 1
defaults: {keys: [id], na_equal: true}
row_validation: {check_count: false}
by_type:
character: {equal_mode: normalized} # "normalized" seul
', path)
res <- compare_datasets_from_yaml(ref, cand, key = "id", path = path)
res$all_passed # FALSE : aucune normalisation appliquée malgré equal_mode: normalized
Critères de succès
Contexte
Le champ YAML
equal_moden'est lu qu'à un seul endroit (R/preprocessing.R:49-54), oùidentical(eq_mode, "normalized")active une branche qui appellenormalize_text(case_insensitive = FALSE, trim = FALSE)— c'est-à-dire l'identité. Et pour date/datetime/logical, le gardeis.character()court-circuite de toute façon. La normalisation ne dépend en réalité que decase_insensitiveettrim.Conséquences :
character_equal_mode,date_equal_mode,datetime_equal_mode,logical_equal_modedewrite_rules_template()sont des paramètres sans aucun effet sur le verdict ;equal_mode: normalizedseul dans son YAML croit activer une normalisation et n'obtient rien — comportement même verrouillé par un test (test-utils.R:50-59) ;equal_modepilote quelque chose.Reprex
Critères de succès
equal_mode: normalizedimplique des défauts documentés (ex.trim = TRUE, case_insensitive = TRUEsauf override), soit le champ et les 4 paramètres*_equal_modesont supprimés (avec dépréciation et migration du template).