package cuda import ( "testing" ) func TestBuildDeviceMap(t *testing.T) { tests := []struct { name string source []string target []string want string wantErr bool }{ { name: "single GPU", source: []string{"GPU-aaa"}, target: []string{"GPU-bbb"}, want: "GPU-aaa=GPU-bbb", }, { name: "multiple GPUs", source: []string{"GPU-aaa", "GPU-bbb"}, target: []string{"GPU-ccc", "GPU-ddd"}, want: "GPU-aaa=GPU-ccc,GPU-bbb=GPU-ddd", }, { name: "mismatched lengths", source: []string{"GPU-aaa", "GPU-bbb"}, target: []string{"GPU-ccc"}, wantErr: true, }, { name: "both empty", source: []string{}, target: []string{}, wantErr: true, }, { name: "source empty target non-empty", source: []string{}, target: []string{"GPU-aaa"}, wantErr: true, }, } for _, tc := range tests { t.Run(tc.name, func(t *testing.T) { got, err := BuildDeviceMap(tc.source, tc.target) if tc.wantErr { if err == nil { t.Errorf("expected error, got %q", got) } return } if err != nil { t.Fatalf("unexpected error: %v", err) } if got != tc.want { t.Errorf("got %q, want %q", got, tc.want) } }) } }