import time

fn test_relative() {
	// past
	mut date := time.now()
	assert date.relative() == 'now'
	date = date.add_seconds(-61)
	assert date.relative() == '1 minute ago'
	assert date.relative_short() == '1m ago'
	date = date.add_seconds(-120)
	assert date.relative() == '3 minutes ago'
	assert date.relative_short() == '3m ago'
	date = date.add_seconds(-1 * time.seconds_per_hour)
	assert date.relative() == '1 hour ago'
	assert date.relative_short() == '1h ago'
	date = date.add_seconds(-5 * time.seconds_per_hour)
	assert date.relative() == '6 hours ago'
	assert date.relative_short() == '6h ago'
	date = date.add_seconds(-1 * time.seconds_per_day)
	assert date.relative() == '1 day ago'
	assert date.relative_short() == '1d ago'
	date = date.add_seconds(-4 * time.seconds_per_day)
	assert date.relative() == '5 days ago'
	assert date.relative_short() == '5d ago'
	date = time.now().add_seconds(-75 * time.seconds_per_day)
	assert date.relative() == 'last ${date.custom_format('MMM')} ${date.custom_format('D')}'
	assert date.relative_short() == '75d ago'
	date = time.now().add_seconds(-400 * time.seconds_per_day)
	assert date.relative() == '1 year ago'
	assert date.relative_short() == '1y ago'

	// future
	date = time.now()
	date = date.add_seconds(61)
	assert date.relative() == 'in 1 minute'
	assert date.relative_short() == 'in 1m'
	date = date.add_seconds(120)
	assert date.relative() == 'in 3 minutes'
	assert date.relative_short() == 'in 3m'
	date = date.add_seconds(1 * time.seconds_per_hour)
	assert date.relative() == 'in 1 hour'
	assert date.relative_short() == 'in 1h'
	date = date.add_seconds(5 * time.seconds_per_hour)
	assert date.relative() == 'in 6 hours'
	assert date.relative_short() == 'in 6h'
	date = date.add_seconds(time.seconds_per_day)
	assert date.relative() == 'in 1 day'
	assert date.relative_short() == 'in 1d'
	date = date.add_seconds(4 * time.seconds_per_day)
	assert date.relative() == 'in 5 days'
	assert date.relative_short() == 'in 5d'
	date = time.now().add_seconds(75 * time.seconds_per_day)
	assert date.relative() == 'on ${date.custom_format('MMM')} ${date.custom_format('D')}'
	assert date.relative_short() == 'in 75d'
	date = time.now().add_seconds(400 * time.seconds_per_day)
	assert date.relative() == 'in 1 year'
	assert date.relative_short() == 'in 1y'
}