1d test
authorBen Pfaff <blp@cs.stanford.edu>
Thu, 10 Apr 2025 15:18:35 +0000 (08:18 -0700)
committerBen Pfaff <blp@cs.stanford.edu>
Thu, 10 Apr 2025 15:18:35 +0000 (08:18 -0700)
rust/pspp/src/output/pivot/test.rs

index 35d1481701fdc7263be4d1ed14a64d8ceaf099dd..5858b4f8c06442341d94cd1acf9bf04efc14bf66 100644 (file)
@@ -22,27 +22,39 @@ fn color() {
     assert_eq!("transparent".parse(), Ok(Color::new(0, 0, 0).with_alpha(0)));
 }
 
-#[test]
-fn pivot_table_1d() {
-    let mut group = GroupBuilder::new(Value::new_text("smaller"));
+fn d1(title: &str, axis: Axis3) -> PivotTable {
+    let mut group = GroupBuilder::new(Value::new_text("a")).with_label_shown();
     for name in ["a1", "a2", "a3"] {
         group.push(Value::new_text(name));
     }
-    let mut bigger_group = GroupBuilder::new(Value::new_text("bigger"));
-    bigger_group.push(group);
-    for name in ["b1", "b2", "b3"] {
-        bigger_group.push(Value::new_text(name));
-    }
-    let dimension = DimensionBuilder::new(Axis3::X, bigger_group);
-    let mut pt = PivotTableBuilder::new(Value::new_text("Columns"), &[dimension]);
-    for i in 0..5 {
+    let dimension = DimensionBuilder::new(axis, group);
+    let mut pt = PivotTableBuilder::new(Value::new_text(title), &[dimension]);
+    for i in 0..3 {
         pt.insert(&[i], Value::new_integer(Some(i as f64)));
     }
-    let mut driver = TextDriver::new(File::create("/dev/stdout").unwrap());
-    let mut pt = pt.build();
-    driver.write(&Arc::new(Item::new(Details::Table(Box::new(pt.clone())))));
-    pt.transpose();
-    driver.write(&Arc::new(Item::new(Details::Table(Box::new(pt)))));
+    pt.with_look(test_look()).build()
+}
+
+#[test]
+fn d1_c() {
+    assert_eq!(
+        d1("Columns", Axis3::X).to_string(),
+        "\
+Columns
+╭────────╮
+│    a   │
+├──┬──┬──┤
+│a1│a2│a3│
+├──┼──┼──┤
+│ 0│ 1│ 2│
+╰──┴──┴──╯
+"
+    );
+}
+
+#[test]
+fn d1_r() {
+    print!("{}", d1("Rows", Axis3::Y));
 }
 
 fn test_look() -> Arc<Look> {