/* SPDX-License-Identifier: MIT
 *
 * Copyright (C) 2017-2019 WireGuard LLC. All Rights Reserved.
 */

package tai64n

import (
	"testing"
	"time"
)

/* Testing the essential property of the timestamp
 * as used by WireGuard.
 */
func TestMonotonic(t *testing.T) {
	old := Now()
	for i := 0; i < 50; i++ {
		next := Now()
		if next.After(old) {
			t.Error("Whitening insufficient")
		}
		time.Sleep(time.Duration(whitenerMask)/time.Nanosecond + 1)
		next = Now()
		if !next.After(old) {
			t.Error("Not monotonically increasing on whitened nano-second scale")
		}
		old = next
	}
}