#!/bin/sh

set -e

compare_result() {
	LABEL="$1"
	INPUT1="$2"
	INPUT2="$3"
	if [ "$INPUT1" = "$INPUT2" ]; then
		echo "PASS: $LABEL: same result"
	else
		echo "FAIL: $LABEL: mismatch result"
		exit 1
	fi
}

# input 54 byte => 72 characters
INPUT1="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01"
EXPECTED="YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjAx"

BASE64_RESULT=$(echo -n $INPUT1 | base64)
AKLOMP_BASE64_RESULT=$(echo -n $INPUT1 | aklomp-base64)
compare_result "base64 (54byte)" $EXPECTED $BASE64_RESULT
compare_result "aklomp-base64 (54byte)" $EXPECTED $AKLOMP_BASE64_RESULT

# input 55 byte => 76 characters
INPUT2="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012"
EXPECTED="YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMg=="
BASE64_RESULT=$(echo -n $INPUT2 | base64)
AKLOMP_BASE64_RESULT=$(echo -n $INPUT2 | aklomp-base64)

compare_result "base64 (55byte)" $EXPECTED $BASE64_RESULT
compare_result "aklomp-base64 (55byte)" $EXPECTED $AKLOMP_BASE64_RESULT

exit 0
