func TestVerifyPassphrase(t *testing.T) {
	passphrases := []struct {
		passphrase string
		length     int
	}{
		{"Hello there how are you doing", 32},
		{"this is bad", 34},
		{"oug84-3T[wZHcx*';k;=m", 20},
		{"指事字 zhǐshìzì", 1},
		{" الأَبْجَدِيَّة العَرَبِيَّة", 30},
	}
	for i, item := range passphrases {
		key, err := DerivePassphrase(item.passphrase, item.length)
		if err != nil {
			t.Errorf("[%d]: DerivePassphrase failed with: %v\n", i, err)
			return
		}
		var result bool
		result, err = VerifyPassphrase(item.passphrase, key)
		if err != nil {
			t.Errorf("[%d]: VerifyPassphrase failed with: %v\n", i, err)
			return
		}
		if !result {
			t.Errorf("Passphrase did not match\n")
		}
	}
}
TestVerifyPassphrase checks whether the same passphrase passes the verify
function or not
package scrypt
import (
	"bytes"
	"testing"
)
func TestSamePassphrase(t *testing.T) {
	passphrase := "Hello there how are you doing"
	key1, err := DerivePassphrase(passphrase, 34)
	if err != nil {
		t.Errorf("DerivePassphrase failed with: %v\n", err)
		return
	}
	var key2 []byte
	key2, err = DerivePassphrase(passphrase, 34)
	if err != nil {
		t.Errorf("DerivePassphrase failed with: %v\n", err)
		return
	}
	if bytes.Equal(key1, key2) {
		t.Errorf("The 2 keys are the same for the same passphrase. Key1- %b, Key2- %b",
			key1, key2)
	}
}