fix(parser/diff): pyMod
This commit is contained in:
		
							parent
							
								
									372bac8f4b
								
							
						
					
					
						commit
						2f94bd30ed
					
				|  | @ -119,11 +119,13 @@ func diffInternal(e, f []any, equals func(any, any) bool, i, j int) []Op { | |||
|  * e.g -1%3 = 2. | ||||
|  * In golang it matches the sign of the numerator. | ||||
|  * See https://en.wikipedia.org/wiki/Modulo_operation#Variants_of_the_definition
 | ||||
|  * Since we always have a positive denominator here, we can emulate the | ||||
|  * pyMod x%y as (x+y) % y | ||||
|  */ | ||||
| func pyMod(x, y int) int { | ||||
| 	return (x + y) % y | ||||
| 	mod := x % y | ||||
| 	if mod < 0 { | ||||
| 		mod += y | ||||
| 	} | ||||
| 	return mod | ||||
| } | ||||
| 
 | ||||
| // Let us map element in same way as in
 | ||||
|  |  | |||
|  | @ -18,6 +18,7 @@ func TestDiff(t *t.T) { | |||
| 	testCases := []TestCase{ | ||||
| 		{[]string{}, []string{}, []Op{}}, | ||||
| 		{[]string{}, []string{"foo"}, []Op{{OpInsert, 0, 0, "foo"}}}, | ||||
| 		{[]string{"foo"}, []string{}, []Op{{OpDelete, 0, -1, "foo"}}}, | ||||
| 		{[]string{"foo", "bar", "baz"}, []string{"foo", "bar", "baz"}, []Op{}}, | ||||
| 		{[]string{"foo", "bar", "baz"}, []string{"foo", "baz"}, []Op{{OpDelete, 1, -1, "bar"}}}, | ||||
| 		{[]string{"baz"}, []string{"foo", "baz"}, []Op{{OpInsert, 0, 0, "foo"}}}, | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user