github.com/yut-kt/gowave@v0.1.4/gowave_benchmark_test.go (about)

     1  package gowave
     2  
     3  import (
     4  	"os"
     5  	"testing"
     6  
     7  	"github.com/yut-kt/gowave/internal/samples/wave_member_structs"
     8  )
     9  
    10  var waveFiles = map[string]*Wave{
    11  	"internal/samples/waves/X.wav": {
    12  		riffChunk: wave_member_structs.GetRiffChunkX(),
    13  		fmtChunk:  wave_member_structs.GetFmtChunkX(),
    14  		dataChunk: wave_member_structs.GetDataChunkX(),
    15  	},
    16  }
    17  
    18  func BenchmarkNew(b *testing.B) {
    19  	for waveFile := range waveFiles {
    20  		f, err := os.Open(waveFile)
    21  		if err != nil {
    22  			b.Errorf("os.Open(%v) error = %v", waveFile, err)
    23  		}
    24  		if _, err := New(f); err != nil {
    25  			b.Errorf("New(f) error = %v", err)
    26  		}
    27  	}
    28  }
    29  
    30  func BenchmarkWave_ReadSamples(b *testing.B) {
    31  	for _, wave := range waveFiles {
    32  		if _, err := wave.ReadSamples(); err != nil {
    33  			b.Errorf("wave.ReadSamples() error = %v", err)
    34  		}
    35  	}
    36  }
    37  
    38  func BenchmarkWave_ReadNSamples(b *testing.B) {
    39  	for _, wave := range waveFiles {
    40  		if _, err := wave.ReadNSamples(1000); err != nil {
    41  			b.Errorf("wave.ReadNSamples(1000) error = %v", err)
    42  		}
    43  	}
    44  }