decoder_test.go | 32 ++++++++++++++++++++++++++++++++ encoder_test.go | 23 +++++++++++++++++++++++ opus_test.go | 61 ----------------------------------------------------- utils_test.go | 25 +++++++++++++++++++++++++ diff --git a/decoder_test.go b/decoder_test.go new file mode 100644 index 0000000000000000000000000000000000000000..e17883f3fee0ed3cb86dd0e4a59a468f861aa7ee --- /dev/null +++ b/decoder_test.go @@ -0,0 +1,32 @@ +// Copyright © 2015, 2016 Hraban Luyat +// +// License for use of this code is detailed in the LICENSE file + +package opus + +import ( + "testing" +) + +func TestDecoderNew(t *testing.T) { + dec, err := NewDecoder(48000, 1) + if err != nil || dec == nil { + t.Errorf("Error creating new decoder: %v", err) + } + dec, err = NewDecoder(12345, 1) + if err == nil || dec != nil { + t.Errorf("Expected error for illegal samplerate 12345") + } +} + +func TestDecoderUnitialized(t *testing.T) { + var dec Decoder + _, err := dec.Decode(nil, nil) + if err != errDecUninitialized { + t.Errorf("Expected \"unitialized decoder\" error: %v", err) + } + _, err = dec.DecodeFloat32(nil, nil) + if err != errDecUninitialized { + t.Errorf("Expected \"unitialized decoder\" error: %v", err) + } +} diff --git a/encoder_test.go b/encoder_test.go index b37489f8c6e15d34a6cf21276cbfd9e527910e38..527a5e3e127ab99004acc89494b2eefffe56e0af 100644 --- a/encoder_test.go +++ b/encoder_test.go @@ -6,6 +6,29 @@ package opus import "testing" +func TestEncoderNew(t *testing.T) { + enc, err := NewEncoder(48000, 1, APPLICATION_VOIP) + if err != nil || enc == nil { + t.Errorf("Error creating new encoder: %v", err) + } + enc, err = NewEncoder(12345, 1, APPLICATION_VOIP) + if err == nil || enc != nil { + t.Errorf("Expected error for illegal samplerate 12345") + } +} + +func TestEncoderUnitialized(t *testing.T) { + var enc Encoder + _, err := enc.Encode(nil, nil) + if err != errEncUninitialized { + t.Errorf("Expected \"unitialized encoder\" error: %v", err) + } + _, err = enc.EncodeFloat32(nil, nil) + if err != errEncUninitialized { + t.Errorf("Expected \"unitialized encoder\" error: %v", err) + } +} + func TestEncoderDTX(t *testing.T) { enc, err := NewEncoder(8000, 1, APPLICATION_VOIP) if err != nil || enc == nil { diff --git a/opus_test.go b/opus_test.go index 230f4265e78f7de866173dd7a8efc33650fa2500..fc91c2c69a5e769c9cbf5827dc5fbc3a7edcae24 100644 --- a/opus_test.go +++ b/opus_test.go @@ -5,7 +5,6 @@ package opus import ( - "math" "strings" "testing" ) @@ -16,52 +15,6 @@ t.Errorf("Unexpected linked libopus version: " + ver) } } -func TestEncoderNew(t *testing.T) { - enc, err := NewEncoder(48000, 1, APPLICATION_VOIP) - if err != nil || enc == nil { - t.Errorf("Error creating new encoder: %v", err) - } - enc, err = NewEncoder(12345, 1, APPLICATION_VOIP) - if err == nil || enc != nil { - t.Errorf("Expected error for illegal samplerate 12345") - } -} - -func TestDecoderNew(t *testing.T) { - dec, err := NewDecoder(48000, 1) - if err != nil || dec == nil { - t.Errorf("Error creating new decoder: %v", err) - } - dec, err = NewDecoder(12345, 1) - if err == nil || dec != nil { - t.Errorf("Expected error for illegal samplerate 12345") - } -} - -func TestEncoderUnitialized(t *testing.T) { - var enc Encoder - _, err := enc.Encode(nil, nil) - if err != errEncUninitialized { - t.Errorf("Expected \"unitialized encoder\" error: %v", err) - } - _, err = enc.EncodeFloat32(nil, nil) - if err != errEncUninitialized { - t.Errorf("Expected \"unitialized encoder\" error: %v", err) - } -} - -func TestDecoderUnitialized(t *testing.T) { - var dec Decoder - _, err := dec.Decode(nil, nil) - if err != errDecUninitialized { - t.Errorf("Expected \"unitialized decoder\" error: %v", err) - } - _, err = dec.DecodeFloat32(nil, nil) - if err != errDecUninitialized { - t.Errorf("Expected \"unitialized decoder\" error: %v", err) - } -} - func TestOpusErrstr(t *testing.T) { // I scooped this -1 up from opus_defines.h, it's OPUS_BAD_ARG. Not pretty, // but it's better than not testing at all. Again, accessing #defines from @@ -69,20 +22,6 @@ // CGO is not possible. if ERR_OPUS_BAD_ARG.Error() != "opus: invalid argument" { t.Errorf("Expected \"invalid argument\" error message for error code %d: %v", ERR_OPUS_BAD_ARG, ERR_OPUS_BAD_ARG) - } -} - -func addSineFloat32(buf []float32, sampleRate int, freq float64) { - factor := 2 * math.Pi * freq / float64(sampleRate) - for i := range buf { - buf[i] += float32(math.Sin(float64(i) * factor)) - } -} - -func addSine(buf []int16, sampleRate int, freq float64) { - factor := 2 * math.Pi * freq / float64(sampleRate) - for i := range buf { - buf[i] += int16(math.Sin(float64(i)*factor) * math.MaxInt16) } } diff --git a/utils_test.go b/utils_test.go new file mode 100644 index 0000000000000000000000000000000000000000..849db921aba3d1de55bfb8059d3b1e53bbe861c1 --- /dev/null +++ b/utils_test.go @@ -0,0 +1,25 @@ +// Copyright © 2015, 2016 Hraban Luyat +// +// License for use of this code is detailed in the LICENSE file + +package opus + +import ( + "math" +) + +// utility functions for unit tests + +func addSineFloat32(buf []float32, sampleRate int, freq float64) { + factor := 2 * math.Pi * freq / float64(sampleRate) + for i := range buf { + buf[i] += float32(math.Sin(float64(i) * factor)) + } +} + +func addSine(buf []int16, sampleRate int, freq float64) { + factor := 2 * math.Pi * freq / float64(sampleRate) + for i := range buf { + buf[i] += int16(math.Sin(float64(i)*factor) * math.MaxInt16) + } +}