fix test
authorBen Pfaff <blp@cs.stanford.edu>
Fri, 20 Jun 2025 00:04:48 +0000 (17:04 -0700)
committerBen Pfaff <blp@cs.stanford.edu>
Fri, 20 Jun 2025 00:04:48 +0000 (17:04 -0700)
rust/pspp/src/sys/cooked.rs
rust/pspp/src/sys/testdata/multiple_response_sets_duplicate_variable_name.expected

index dcac4af6bdcdb615af4c38cef589d9ed7e0c432f..e74b7334dadd537e39bf037c64f2a2f617e230e6 100644 (file)
@@ -124,6 +124,12 @@ pub enum Error {
         short_name: Identifier,
     },
 
+    #[error("Multiple response set {mr_set} includes variable {variable} more than once.")]
+    DuplicateMrSetVariable {
+        mr_set: Identifier,
+        variable: Identifier,
+    },
+
     #[error("Multiple response set {0} has no variables.")]
     EmptyMrSet(Identifier),
 
@@ -1027,6 +1033,13 @@ impl MultipleResponseSet {
                 });
                 continue;
             };
+            if variables.contains(&dict_index) {
+                warn(Error::DuplicateMrSetVariable {
+                    mr_set: mr_set_name.clone(),
+                    variable: dictionary.variables[dict_index].name.clone(),
+                });
+                continue;
+            }
             variables.push(dict_index);
         }
 
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..e5a0854dc6be78fedfdd72fb9aad8f94bd395ed2 100644 (file)
@@ -0,0 +1,22 @@
+Multiple response set $a includes variable NUM1 more than once.
+
+Multiple response set $a has only one variable.
+
+╭──────────────────────┬────────────────────────╮
+│       Created        │    01-JAN-2011 20:53:52│
+├──────────────────────┼────────────────────────┤
+│Writer Product        │PSPP synthetic test file│
+├──────────────────────┼────────────────────────┤
+│       Compression    │SAV                     │
+│       Number of Cases│Unknown                 │
+╰──────────────────────┴────────────────────────╯
+
+╭─────────┬─╮
+│Variables│1│
+╰─────────┴─╯
+
+╭────┬────────┬─────┬─────────────────┬─────┬─────┬─────────┬────────────┬────────────┬──────────────╮
+│    │Position│Label│Measurement Level│ Role│Width│Alignment│Print Format│Write Format│Missing Values│
+├────┼────────┼─────┼─────────────────┼─────┼─────┼─────────┼────────────┼────────────┼──────────────┤
+│num1│       1│     │                 │Input│    8│Right    │F8.0        │F8.0        │              │
+╰────┴────────┴─────┴─────────────────┴─────┴─────┴─────────┴────────────┴────────────┴──────────────╯