TestMsgpSortedBehavior ensures that sorted variants maintain order
(t *testing.T)
| 397 | |
| 398 | // TestMsgpSortedBehavior ensures that sorted variants maintain order |
| 399 | func TestMsgpSortedBehavior(t *testing.T) { |
| 400 | t.Run("StringSet sorted", func(t *testing.T) { |
| 401 | original := CreateStringSet("zebra", "apple", "banana", "cherry") |
| 402 | data, err := original.MarshalMsg(nil) |
| 403 | if err != nil { |
| 404 | t.Fatalf("MarshalMsg() error = %v", err) |
| 405 | } |
| 406 | |
| 407 | var decoded StringSet |
| 408 | _, err = decoded.UnmarshalMsg(data) |
| 409 | if err != nil { |
| 410 | t.Fatalf("UnmarshalMsg() error = %v", err) |
| 411 | } |
| 412 | |
| 413 | originalSlice := original.ToSlice() |
| 414 | decodedSlice := decoded.ToSlice() |
| 415 | |
| 416 | // Both should be sorted |
| 417 | expectedSlice := []string{"apple", "banana", "cherry", "zebra"} |
| 418 | if !reflect.DeepEqual(originalSlice, expectedSlice) || !reflect.DeepEqual(decodedSlice, expectedSlice) { |
| 419 | t.Errorf("Expected sorted slices to be %v, got original=%v, decoded=%v", |
| 420 | expectedSlice, originalSlice, decodedSlice) |
| 421 | } |
| 422 | }) |
| 423 | |
| 424 | t.Run("IntSet sorted", func(t *testing.T) { |
| 425 | original := CreateIntSet(42, 1, 99, 7, 23) |
| 426 | data, err := original.MarshalMsg(nil) |
| 427 | if err != nil { |
| 428 | t.Fatalf("MarshalMsg() error = %v", err) |
| 429 | } |
| 430 | |
| 431 | var decoded IntSet |
| 432 | _, err = decoded.UnmarshalMsg(data) |
| 433 | if err != nil { |
| 434 | t.Fatalf("UnmarshalMsg() error = %v", err) |
| 435 | } |
| 436 | |
| 437 | originalSlice := original.ToSlice() |
| 438 | decodedSlice := decoded.ToSlice() |
| 439 | |
| 440 | // Both should be sorted |
| 441 | expectedSlice := []int{1, 7, 23, 42, 99} |
| 442 | if !reflect.DeepEqual(originalSlice, expectedSlice) || !reflect.DeepEqual(decodedSlice, expectedSlice) { |
| 443 | t.Errorf("Expected sorted slices to be %v, got original=%v, decoded=%v", |
| 444 | expectedSlice, originalSlice, decodedSlice) |
| 445 | } |
| 446 | }) |
| 447 | } |
nothing calls this directly
no test coverage detected