github.com/vertgenlab/gonomics@v1.0.0/cmd/mergesort/mergesort_test.go (about)

     1  package main
     2  
     3  import (
     4  	"os"
     5  	"testing"
     6  
     7  	"github.com/vertgenlab/gonomics/exception"
     8  	"github.com/vertgenlab/gonomics/fileio"
     9  )
    10  
    11  var MergeSortTests = []struct {
    12  	InFile           string
    13  	OutFile          string
    14  	ExpectedFile     string
    15  	TmpFilePrefix    string
    16  	NumLinesPerChunk int
    17  	SortCriteria     string
    18  }{
    19  	{"testdata/bedFileTest.bed", "testdata/out.bed", "testdata/expectedSortByCoord.bed", "tmp", 1000000, "byGenomicCoordinates"},
    20  	{"testdata/small.sam", "testdata/out.sam", "testdata/expected.small.sam", "tmp", 1000000, "byGenomicCoordinates"},
    21  	{"testdata/singleCell.sam", "testdata/out.singleCell.sam", "testdata/expected.singleCell.sam", "tmp", 1000000, "singleCellBx"},
    22  	{"testdata/test.vcf", "testdata/out.vcf", "testdata/expected.vcf", "tmp", 1000000, "byGenomicCoordinates"},
    23  	{"testdata/test.axt", "testdata/out.axt", "testdata/expected.axt", "tmp", 1000000, "byGenomicCoordinates"},
    24  	// TODO enable giraf sorting after pointers are removed
    25  	//{"testdata/test.giraf", "testdata/out.giraf", "testdata/expected.giraf", "tmp", 1000000, "byGenomicCoordinates"},
    26  }
    27  
    28  func TestMergeSort(t *testing.T) {
    29  	var err error
    30  	for _, v := range MergeSortTests {
    31  		mergeSort(v.InFile, v.OutFile, v.NumLinesPerChunk, v.SortCriteria)
    32  		if !fileio.AreEqual(v.OutFile, v.ExpectedFile) {
    33  			t.Errorf("Error in mergeSort: %s.", v.OutFile)
    34  		} else {
    35  			err = os.Remove(v.OutFile)
    36  			exception.PanicOnErr(err)
    37  		}
    38  	}
    39  }