#!/usr/bin/env bash
#
# Integration test for reorder_ts hook.
#
# Author: Philipp Jungkamp <Philipp.Jungkamp@opal-rt.com>
# SPDX-FileCopyrightText: 2023 OPAL-RT Germany GmbH
# SPDX-License-Identifier: Apache-2.0

set -e

DIR=$(mktemp -d)
pushd ${DIR}

function finish {
    popd
    rm -rf ${DIR}
}
trap finish EXIT

cat > input.dat <<EOF
# seconds.nanoseconds+offset(sequence)	signal0	signal1	signal2	signal3	signal4
1490500399.776379108(0)	0.000000	0.000000	0.000000	0.000000
1490500399.876379108(1)	0.587785	0.587785	0.587785	0.587785
1490500399.976379108(2)	0.951057	0.951057	0.951057	0.951057
1490500399.976379108(2)	0.951057	0.951057	0.951057	0.951057
1490500399.976379108(2)	0.951057	0.951057	0.951057	0.951057
1490500400.076379108(3)	0.951057	0.951057	0.951057	0.951057
1490500400.176379108(4)	0.587785	0.587785	0.587785	0.587785
1490500400.476379108(7)	-0.951057	-0.951057	-0.951057	-0.951057
1490500400.276379108(5)	0.000000	0.000000	0.000000	0.000000
1490500400.576379108(8)	-0.951057	-0.951057	-0.951057	-0.951057
1490500400.376379108(6)	-0.587785	-0.587785	-0.587785	-0.587785
1490500400.676379108(9)	-0.587785	-0.587785	-0.587785	-0.587785
EOF

cat > expect.dat <<EOF
1490500399.776379108+2.041837e+08(0)  0.00000000000000000     0.00000000000000000     0.00000000000000000     0.00000000000000000
1490500399.876379108+2.041837e+08(1)  0.58778500000000000     0.58778500000000000     0.58778500000000000     0.58778500000000000
1490500399.976379108+2.041837e+08(2)  0.95105700000000004     0.95105700000000004     0.95105700000000004     0.95105700000000004
1490500400.076379108+2.041837e+08(3)  0.95105700000000004     0.95105700000000004     0.95105700000000004     0.95105700000000004
1490500400.176379108+2.041837e+08(4)  0.58778500000000000     0.58778500000000000     0.58778500000000000     0.58778500000000000
1490500400.276379108+2.041837e+08(5)  0.00000000000000000     0.00000000000000000     0.00000000000000000     0.00000000000000000
1490500400.376379108+2.041837e+08(6)  -0.58778500000000000    -0.58778500000000000    -0.58778500000000000    -0.58778500000000000
EOF

villas hook reorder_ts -o window_size=3 < input.dat > reorder.dat
villas hook drop < reorder.dat > output.dat

villas compare output.dat expect.dat