mirror of
https://github.com/jwetzell/osc-go.git
synced 2026-08-21 22:38:59 +00:00
bring back the osc lib for go learning reasons
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
package osc
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"reflect"
|
||||
"testing"
|
||||
)
|
||||
|
||||
// TestHelloName calls greetings.Hello with a name, checking
|
||||
// for a valid return value.
|
||||
func TestOSCEncoding(t *testing.T) {
|
||||
|
||||
testCases := []struct {
|
||||
description string
|
||||
message OSCMessage
|
||||
expected []byte
|
||||
}{
|
||||
{
|
||||
"simple hello",
|
||||
OSCMessage{
|
||||
Address: "/hello",
|
||||
Args: []OSCArg{},
|
||||
},
|
||||
[]byte{47, 104, 101, 108, 108, 111, 0, 0, 44, 0, 0, 0},
|
||||
},
|
||||
{
|
||||
"simple address string arg",
|
||||
OSCMessage{
|
||||
Address: "/hello",
|
||||
Args: []OSCArg{
|
||||
{
|
||||
Type: "s",
|
||||
Value: "arg1",
|
||||
},
|
||||
},
|
||||
},
|
||||
[]byte{47, 104, 101, 108, 108, 111, 0, 0, 44, 115, 0, 0, 97, 114, 103, 49, 0, 0, 0, 0},
|
||||
},
|
||||
{
|
||||
description: "simple address integer arg",
|
||||
message: OSCMessage{Address: "/hello", Args: []OSCArg{{Type: "i", Value: 35}}},
|
||||
expected: []byte{47, 104, 101, 108, 108, 111, 0, 0, 44, 105, 0, 0, 0, 0, 0, 35},
|
||||
},
|
||||
{
|
||||
description: "simple address float arg",
|
||||
message: OSCMessage{Address: "/hello", Args: []OSCArg{{Type: "f", Value: 34.5}}},
|
||||
expected: []byte{47, 104, 101, 108, 108, 111, 0, 0, 44, 102, 0, 0, 66, 10, 0, 0},
|
||||
},
|
||||
{
|
||||
description: "simple address blob arg",
|
||||
message: OSCMessage{Address: "/hello", Args: []OSCArg{OSCArg{Type: "b", Value: []byte{98, 108, 111, 98}}}},
|
||||
expected: []byte{47, 104, 101, 108, 108, 111, 0, 0, 44, 98, 0, 0, 0, 0, 0, 4, 98, 108, 111, 98},
|
||||
},
|
||||
}
|
||||
|
||||
for _, testCase := range testCases {
|
||||
|
||||
actual := ToBytes(testCase.message)
|
||||
|
||||
if !reflect.DeepEqual(actual, testCase.expected) {
|
||||
t.Errorf("Test '%s' failed to encode properly", testCase.description)
|
||||
fmt.Printf("expected: %v\n", testCase.expected)
|
||||
fmt.Printf("actual: %v\n", actual)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user