github.com/nevalang/neva@v0.23.1-0.20240507185603-7696a9bb8dda/internal/compiler/irgen/network_test.go (about)

     1  package irgen
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/nevalang/neva/internal/runtime/ir"
     7  	"github.com/stretchr/testify/require"
     8  )
     9  
    10  func Test_joinNodePath(t *testing.T) {
    11  	type args struct {
    12  		nodePath []string
    13  		nodeName string
    14  	}
    15  	tests := []struct {
    16  		name string
    17  		args args
    18  		want string
    19  	}{
    20  		{
    21  			name: "simple_join",
    22  			args: args{
    23  				nodePath: []string{"foo", "bar"},
    24  				nodeName: "baz",
    25  			},
    26  			want: "foo/bar/baz",
    27  		},
    28  	}
    29  	for _, tt := range tests {
    30  		t.Run(tt.name, func(t *testing.T) {
    31  			if got := joinNodePath(tt.args.nodePath, tt.args.nodeName); got != tt.want {
    32  				t.Errorf("joinNodePath() = %v, want %v", got, tt.want)
    33  			}
    34  		})
    35  	}
    36  }
    37  
    38  func Test_sortPortAddrs(t *testing.T) {
    39  	tests := []struct {
    40  		name  string
    41  		addrs []ir.PortAddr
    42  		want  []ir.PortAddr
    43  	}{
    44  		{
    45  			name: "messed up order",
    46  			addrs: []ir.PortAddr{
    47  				{Path: "b", Port: "A", Idx: 1},
    48  				{Path: "b", Port: "A", Idx: 0},
    49  				{Path: "a", Port: "B", Idx: 0},
    50  				{Path: "a", Port: "B", Idx: 1},
    51  				{Path: "a", Port: "A", Idx: 2},
    52  				{Path: "a", Port: "A", Idx: 1},
    53  				{Path: "a", Port: "A", Idx: 0},
    54  			},
    55  			want: []ir.PortAddr{
    56  				{Path: "a", Port: "A", Idx: 0},
    57  				{Path: "a", Port: "A", Idx: 1},
    58  				{Path: "a", Port: "A", Idx: 2},
    59  				{Path: "a", Port: "B", Idx: 0},
    60  				{Path: "a", Port: "B", Idx: 1},
    61  				{Path: "b", Port: "A", Idx: 0},
    62  				{Path: "b", Port: "A", Idx: 1},
    63  			},
    64  		},
    65  	}
    66  	for _, tt := range tests {
    67  		t.Run(tt.name, func(t *testing.T) {
    68  			sortPortAddrs(tt.addrs)
    69  			require.Equal(t, tt.want, tt.addrs)
    70  		})
    71  	}
    72  }