MCPcopy
hub / github.com/google/go-cmp / TestResult

Function TestResult

cmp/internal/diff/diff_test.go:400–449  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

398)
399
400func TestResult(t *testing.T) {
401 tests := []struct {
402 result Result
403 wantEqual bool
404 wantSimilar bool
405 }{
406 // equalResult is equal since NumDiff == 0, by definition of Equal method.
407 {equalResult, true, true},
408 // similarResult is similar since it is a binary result where only one
409 // element was compared (i.e., Either NumSame==1 or NumDiff==1).
410 {similarResult, false, true},
411 // differentResult is different since there are enough differences that
412 // it isn't even considered similar.
413 {differentResult, false, false},
414
415 // Zero value is always equal.
416 {Result{NumSame: 0, NumDiff: 0}, true, true},
417
418 // Binary comparisons (where NumSame+NumDiff == 1) are always similar.
419 {Result{NumSame: 1, NumDiff: 0}, true, true},
420 {Result{NumSame: 0, NumDiff: 1}, false, true},
421
422 // More complex ratios. The exact ratio for similarity may change,
423 // and may require updates to these test cases.
424 {Result{NumSame: 1, NumDiff: 1}, false, true},
425 {Result{NumSame: 1, NumDiff: 2}, false, true},
426 {Result{NumSame: 1, NumDiff: 3}, false, false},
427 {Result{NumSame: 2, NumDiff: 1}, false, true},
428 {Result{NumSame: 2, NumDiff: 2}, false, true},
429 {Result{NumSame: 2, NumDiff: 3}, false, true},
430 {Result{NumSame: 3, NumDiff: 1}, false, true},
431 {Result{NumSame: 3, NumDiff: 2}, false, true},
432 {Result{NumSame: 3, NumDiff: 3}, false, true},
433 {Result{NumSame: 1000, NumDiff: 0}, true, true},
434 {Result{NumSame: 1000, NumDiff: 1}, false, true},
435 {Result{NumSame: 1000, NumDiff: 2}, false, true},
436 {Result{NumSame: 0, NumDiff: 1000}, false, false},
437 {Result{NumSame: 1, NumDiff: 1000}, false, false},
438 {Result{NumSame: 2, NumDiff: 1000}, false, false},
439 }
440
441 for _, tt := range tests {
442 if got := tt.result.Equal(); got != tt.wantEqual {
443 t.Errorf("%#v.Equal() = %v, want %v", tt.result, got, tt.wantEqual)
444 }
445 if got := tt.result.Similar(); got != tt.wantSimilar {
446 t.Errorf("%#v.Similar() = %v, want %v", tt.result, got, tt.wantSimilar)
447 }
448 }
449}

Callers

nothing calls this directly

Calls 3

SimilarMethod · 0.80
EqualMethod · 0.65
ErrorfMethod · 0.45

Tested by

no test coverage detected