go-hep.org/x/hep@v0.38.1/cmd/root2csv/main_test.go (about) 1 // Copyright ©2019 The go-hep Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package main // import "go-hep.org/x/hep/cmd/root2csv" 6 7 import ( 8 "bytes" 9 "os" 10 "testing" 11 12 "go-hep.org/x/hep/internal/diff" 13 ) 14 15 func TestROOT2CSV(t *testing.T) { 16 for _, tc := range []struct { 17 file string 18 tree string 19 want string 20 skip bool 21 }{ 22 { 23 file: "../../groot/testdata/simple.root", 24 tree: "tree", 25 want: "testdata/simple.root.csv", 26 }, 27 { 28 file: "../../groot/testdata/leaves.root", 29 tree: "tree", 30 want: "testdata/leaves.root.csv", 31 }, 32 { 33 file: "../../groot/testdata/small-evnt-tree-fullsplit.root", 34 tree: "tree", 35 want: "testdata/small-evnt-tree-fullsplit.root.csv", 36 }, 37 { 38 file: "../../groot/testdata/small-evnt-tree-nosplit.root", 39 tree: "tree", 40 want: "testdata/small-evnt-tree-nosplit.root.csv", 41 skip: true, // FIXME(sbinet) 42 }, 43 { 44 file: "../../groot/testdata/graphs.root", 45 tree: "tg", 46 want: "testdata/graphs-tg.root.csv", 47 }, 48 { 49 file: "../../groot/testdata/graphs.root", 50 tree: "tge", 51 want: "testdata/graphs-tge.root.csv", 52 }, 53 { 54 file: "../../groot/testdata/graphs.root", 55 tree: "tgae", 56 want: "testdata/graphs-tgae.root.csv", 57 }, 58 { 59 file: "../../groot/testdata/tcanvas.root", 60 tree: "c1/Graph", 61 want: "testdata/tcanvas.root.csv", 62 }, 63 } { 64 t.Run(tc.file, func(t *testing.T) { 65 if tc.skip { 66 t.Skipf("not ready (FIXME)") 67 } 68 69 f, err := os.CreateTemp("", "root2csv-") 70 if err != nil { 71 t.Fatal(err) 72 } 73 f.Close() 74 defer os.Remove(f.Name()) 75 76 err = process(f.Name(), tc.file, tc.tree) 77 if err != nil { 78 t.Fatal(err) 79 } 80 81 want, err := os.ReadFile(tc.want) 82 if err != nil { 83 t.Fatal(err) 84 } 85 86 got, err := os.ReadFile(f.Name()) 87 if err != nil { 88 t.Fatal(err) 89 } 90 91 if !bytes.Equal(got, want) { 92 t.Fatalf("CSV files differ:\n%s", diff.Format(string(got), string(want))) 93 } 94 }) 95 } 96 97 }