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  }