testing

package
v1.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 25, 2026 License: BSD-2-Clause Imports: 8 Imported by: 0

Documentation

Overview

Package testing provides verification and comparison tools for Opus library development. These tools compare our Pure Go implementation against libopus reference output.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DecodeWithLibopus

func DecodeWithLibopus(opusData []byte, sampleRate int) ([]byte, error)

DecodeWithLibopus decodes Opus using libopus opusdec command. Returns decoded PCM or error.

Prerequisites: opusdec must be in PATH.

func EncodeWithLibopus

func EncodeWithLibopus(pcmData []byte, sampleRate, channels, bitrate int) ([]byte, error)

EncodeWithLibopus encodes PCM using libopus opusenc command. Returns encoded bytes or error.

Prerequisites: opusenc must be in PATH. This is Pure Go - we use exec, not CGO.

func ExecLibopus

func ExecLibopus(command string, args ...string) ([]byte, error)

ExecLibopus runs libopus binary (opusenc/opusdec) and captures output. This is the Pure Go way to interact with libopus - exec only, no CGO.

func Float64ToBytes

func Float64ToBytes(data []float64) []byte

Float64ToBytes converts float64 slice to bytes for comparison.

func ParseOpusInfoOutput

func ParseOpusInfoOutput(output []byte) map[string]string

ParseOpusInfoOutput parses output from opus_demo -info or similar.

Types

type BitstreamCompareResult

type BitstreamCompareResult struct {
	Passed       bool
	TotalBytes   int
	MatchedBytes int
	Differences  []BitstreamDiff
	FirstDiffPos int // Position of first difference (-1 if none)
}

BitstreamCompareResult holds the result of bitstream comparison.

func CompareBitstreams

func CompareBitstreams(expected, actual []byte) *BitstreamCompareResult

CompareBitstreams compares two byte slices and returns detailed diff.

func CompareEncoderOutput

func CompareEncoderOutput(pcmData []byte, sampleRate, channels, bitrate int, ourEncoder func([]byte) ([]byte, error)) (*BitstreamCompareResult, error)

CompareEncoderOutput encodes same PCM with both libopus and our encoder, then compares the bitstreams.

func (*BitstreamCompareResult) PrintReport

func (r *BitstreamCompareResult) PrintReport() string

PrintReport outputs comparison result as readable string.

type BitstreamDiff

type BitstreamDiff struct {
	Position int    // Byte position
	Expected byte   // Expected value from libopus
	Actual   byte   // Actual value from our encoder
	Context  string // Surrounding bytes for context
}

BitstreamDiff represents a single difference in the bitstream.

type ConstantsReport

type ConstantsReport struct {
	MDCTTwiddles     VerificationResult
	CELTWindow       VerificationResult
	RangeCoderConsts VerificationResult
}

ConstantsReport holds the result of constants verification.

func VerifyConstants

func VerifyConstants() *ConstantsReport

VerifyConstants compares our internal constants against expected libopus values. Returns a detailed report of any discrepancies.

func (*ConstantsReport) PrintReport

func (r *ConstantsReport) PrintReport() string

PrintReport outputs the verification report to console.

type VerificationResult

type VerificationResult struct {
	Name       string
	Expected   []float64
	Actual     []float64
	MaxError   float64
	AvgError   float64
	Passed     bool
	ErrorCount int
}

VerificationResult holds a single verification outcome.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL