mirror of https://github.com/01-edu/public.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
742 B
38 lines
742 B
package main |
|
|
|
import ( |
|
"reflect" |
|
|
|
"./student" |
|
"github.com/01-edu/public/go/lib" |
|
) |
|
|
|
func swapBits(n byte) byte { |
|
return (n >> 4) | (n << 4) |
|
} |
|
|
|
func challengeBytes(fn1, fn2 interface{}, args ...interface{}) { |
|
st1 := lib.Monitor(fn1, args) |
|
st2 := lib.Monitor(fn2, args) |
|
if !reflect.DeepEqual(st1.Results, st2.Results) { |
|
lib.Fatalf("%s(%08b) == %08b instead of %08b\n", |
|
"SwapBits", |
|
args[0].(byte), |
|
st1.Results[0].(byte), |
|
st2.Results[0].(byte), |
|
) |
|
} |
|
} |
|
|
|
func main() { |
|
args := []byte{0x24, 0x14, 0x11, 0x22, 0xd2, 0x15, 0xff, 0x0, 0x35, 0x58, 0x43} |
|
|
|
for i := 0; i < 10; i++ { |
|
n := lib.RandIntBetween(0, 255) |
|
args = append(args, byte(n)) |
|
} |
|
|
|
for _, v := range args { |
|
challengeBytes(student.SwapBits, swapBits, v) |
|
} |
|
}
|
|
|