Source File
diff.go
Belonging Package
github.com/google/go-cmp/cmp/internal/diff
package diff
import (
)
Modified
)
type EditScript []EditType
func ( EditScript) () int { return len() - .stats().NI }
func ( EditScript) () int { return len() - .stats().NY }
func ( EditScript) () int { return len() - .stats().NX }
:= randInt // either 0 or 1
if flags.Deterministic {
= 0
}
:= path{+1, point{0, 0}, make(EditScript, 0, (+)/2)}
:= path{-1, point{, }, make(EditScript, 0)}
:= .point // Forward search frontier
:= .point // Reverse search frontier
:= 4 * ( + ) // O(n)
.connect(, )
.connect(, )
for .X > .X && .Y > .Y {
switch := (.X-1, .Y-1); {
case .Equal():
.append(Identity)
case .Similar():
.append(Modified)
case .Y-.Y >= .X-.X:
.append(UniqueY)
default:
.append(UniqueX)
}
}
for .X > .X {
.append(UniqueX)
}
for .Y > .Y {
.append(UniqueY)
}
}
}
func ( *path) ( EditType) {
.es = append(.es, )
switch {
case Identity, Modified:
.add(.dir, .dir)
case UniqueX:
.add(.dir, 0)
case UniqueY:
.add(0, .dir)
}
debug.Update()
}
type point struct{ X, Y int }
func ( *point) (, int) { .X += ; .Y += }
![]() |
The pages are generated with Golds v0.3.2-preview. (GOOS=darwin GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @Go100and1 (reachable from the left QR code) to get the latest news of Golds. |