MCPcopy
hub / github.com/minio/minio-go / TestMsgpSortedBehavior

Function TestMsgpSortedBehavior

pkg/set/msgp_test.go:399–447  ·  view source on GitHub ↗

TestMsgpSortedBehavior ensures that sorted variants maintain order

(t *testing.T)

Source from the content-addressed store, hash-verified

397
398// TestMsgpSortedBehavior ensures that sorted variants maintain order
399func 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}

Callers

nothing calls this directly

Calls 6

UnmarshalMsgMethod · 0.95
ToSliceMethod · 0.95
CreateStringSetFunction · 0.85
CreateIntSetFunction · 0.85
MarshalMsgMethod · 0.45
ToSliceMethod · 0.45

Tested by

no test coverage detected