view pkg/common/time_test.go @ 5694:3bc15e38c7e8 sr-v2

Typo fix
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Mon, 12 Feb 2024 14:43:31 +0100
parents ecb4baa2be1a
children
line wrap: on
line source

// This is Free Software under GNU Affero General Public License v >= 3.0
// without warranty, see README.md and license for details.
//
// SPDX-License-Identifier: AGPL-3.0-or-later
// License-Filename: LICENSES/AGPL-3.0.txt
//
// Copyright (C) 2018, 2019 by via donau
//   – Österreichische Wasserstraßen-Gesellschaft mbH
// Software engineering by Intevation GmbH
//
// Author(s):
//  * Sascha L. Teichmann <sascha.teichmann@intevation.de>

package common

import (
	"testing"
	"time"
)

func TestInterpolateTimeByValue(t *testing.T) {

	t1 := time.Now().UTC()
	t2 := t1.Add(time.Hour).UTC()

	f := InterpolateTime(t1, 10, t2, 20)

	v1 := f(10)
	v2 := f(20)
	v3 := f(15)

	t3 := t1.Add(time.Hour / 2)

	d1 := v1.Sub(t1)
	d2 := v2.Sub(t2)
	d3 := v3.Sub(t3)

	if d1 < 0 {
		d1 = -d1
	}

	if d1 > 100*time.Microsecond {
		t.Errorf("difference too big t1: %v\n", d1)
	}

	if d2 < 0 {
		d2 = -d2
	}

	if d2 > 100*time.Microsecond {
		t.Errorf("difference too big t2: %v\n", d2)
	}

	if d3 < 0 {
		d3 = -d3
	}

	if d3 > 100*time.Microsecond {
		t.Errorf("difference too big t3: %v\n", d3)
	}
}