Skip to content
This repository has been archived by the owner on Jan 5, 2023. It is now read-only.

Latest commit

 

History

History
 
 

testbackend

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

GoDoc

About

This package contains utilities for testing a backend.

Test cases are described thanks to this structure

type TestCase struct {
	Title          string
	ModelB         []byte
	Input          []tensor.Tensor
	ExpectedOutput []tensor.Tensor
}

The structure own a method that genererate a test function suitable to run through T.Run()

func (tc *TestCase) RunTest(b backend.ComputationBackend, parallel bool) func(t *testing.T) {

A test for a certain OpType can be registered with the following command:

func Register(optype, testTitle string, constructor func() *TestCase)

Usage in your backend implementation

Here is an example of a test for the Convolution Operator.

Register the tests from ONNX:

_ "github.com/owulveryck/onnx-go/backend/testbackend/onnx"
func(t *testing.T) {
		for _, tc := range testbackend.GetOpTypeTests("Conv") {
			tc := tc // capture range variable
			t.Run(tc().GetInfo(), tc().RunTest(backend, false))
		}
	}

Tests from ONNX

Test files have been autogenerated from the ONNX tests data and are exposed via a seperate package.

A void import of the package register all the tests that are accessible through a call to the function GetOpTypeTests

_ "github.com/owulveryck/onnx-go/backend/testbackend/onnx"
func GetOpTypeTests(optype string) []func() *TestCase {