derohe-miniblock-mod/astrobwt/astrobwt_fast/astrobwt_optimized_test.go

51 lines
1.1 KiB
Go
Raw Permalink Normal View History

2022-03-10 11:15:46 +00:00
package astrobwt_fast
import "crypto/rand"
//import "strings"
import "testing"
//import "encoding/hex"
import "github.com/deroproject/derohe/astrobwt"
func TestPOW_optimized_v1(t *testing.T) {
scratch := Pool.Get().(*ScratchData)
for i := 0; i < 4000; i++ {
buf := make([]byte, 400, 400)
rand.Read(buf)
expected_output := astrobwt.POW16(buf[:])
actual_output := POW_optimized(buf[:], scratch)
if string(expected_output[:]) != string(actual_output[:]) {
t.Fatalf("Test failed: POW and POW_optimized returns different for i=%d buf %x", i, buf)
}
}
}
func BenchmarkFastSA(t *testing.B) {
var buf [stage1_length + 40]byte
rand.Read(buf[:])
var output [10000]uint16
scratch := Pool.Get().(*ScratchData)
rand.Read(buf[:stage1_length])
for i := 0; i < t.N; i++ {
sort_indices(stage1_length, buf[:], output[:], scratch)
// t.Logf("Ran algo %d", i)
}
}
func BenchmarkPOW_optimized(t *testing.B) {
var buf [128]byte
rand.Read(buf[:])
scratch := Pool.Get().(*ScratchData)
for i := 0; i < t.N; i++ {
_ = POW_optimized(buf[:], scratch)
}
}