github.com/vertgenlab/gonomics@v1.0.0/cmd/wigPeaks/wigPeaks_test.go (about) 1 package main 2 3 import ( 4 "os" 5 "testing" 6 7 "github.com/vertgenlab/gonomics/bed" 8 "github.com/vertgenlab/gonomics/exception" 9 ) 10 11 // use struct to specify testdata. 12 var wigPeaksTests = []struct { 13 inWig string 14 outBed string 15 expectedBed string 16 threshold float64 17 findMinima bool 18 }{ 19 //{"testdata/in_wig_1.wig", "testdata/out_bed_tmp.bed", "testdata/out_bed_1.bed", 20, false}, 20 //{"testdata/in_wig_2.wig", "testdata/out_bed_tmp.bed", "testdata/out_bed_2.bed", 50, false}, 21 {"testdata/in_wig_1.wig", "testdata/tmp.Minima.bed", "testdata/expected.minima.bed", 50, true}, 22 } 23 24 func TestWigPeaks(t *testing.T) { 25 var err error 26 for _, v := range wigPeaksTests { 27 wigPeaks(v.inWig, v.outBed, v.threshold, v.findMinima) 28 records := bed.Read(v.outBed) 29 expected := bed.Read(v.expectedBed) 30 if !bed.AllAreEqual(records, expected) { 31 t.Errorf("Error in wigPeaks, created bed and test bed are not equal.") 32 } else { 33 err = os.Remove(v.outBed) 34 exception.PanicOnErr(err) 35 } 36 } 37 }