MCPcopy Create free account
hub / github.com/github/gh-aw / mapsEqual

Function mapsEqual

pkg/workflow/trigger_parser_test.go:527–591  ·  view source on GitHub ↗

Helper function to compare maps

(a, b map[string]any)

Source from the content-addressed store, hash-verified

525
526// Helper function to compare maps
527func mapsEqual(a, b map[string]any) bool {
528 if len(a) != len(b) {
529 return false
530 }
531
532 for key, aVal := range a {
533 bVal, exists := b[key]
534 if !exists {
535 return false
536 }
537
538 // Handle nil values
539 if aVal == nil && bVal == nil {
540 continue
541 }
542 if aVal == nil || bVal == nil {
543 return false
544 }
545
546 // Handle map values
547 if aMap, ok := aVal.(map[string]any); ok {
548 if bMap, ok := bVal.(map[string]any); ok {
549 if !mapsEqual(aMap, bMap) {
550 return false
551 }
552 continue
553 }
554 return false
555 }
556
557 // Handle slice values
558 if aSlice, ok := aVal.([]string); ok {
559 if bSlice, ok := bVal.([]string); ok {
560 if !slicesEqual(aSlice, bSlice) {
561 return false
562 }
563 continue
564 }
565 return false
566 }
567
568 // Handle []any values
569 if aSlice, ok := aVal.([]any); ok {
570 if bSlice, ok := bVal.([]any); ok {
571 if len(aSlice) != len(bSlice) {
572 return false
573 }
574 for i := range aSlice {
575 if aSlice[i] != bSlice[i] {
576 return false
577 }
578 }
579 continue
580 }
581 return false
582 }
583
584 // Direct comparison for other types

Callers 2

TestTriggerIRToYAMLMapFunction · 0.70

Calls 1

slicesEqualFunction · 0.85

Tested by

no test coverage detected