Files
game-cards/addons/gut/test/unit/test_version_numbers.gd
2026-05-29 09:16:10 +08:00

159 lines
4.5 KiB
GDScript

extends GutTest
var VersionNumbers = load("res://addons/gut/version_numbers.gd")
func test_can_make_one():
var vn = VersionNumbers.new()
assert_not_null(vn)
func test_default_version_values():
var vn = VersionNumbers.new()
assert_eq(vn.gut_version, '0.0.0', 'gut version')
func test_init_sets_gut_version_from_string():
var vn = VersionNumbers.new('1.2.3')
assert_eq(vn.gut_version, '1.2.3')
class TestVerNumTools:
extends GutTest
var Vnt = load("res://addons/gut/version_numbers.gd").VerNumTools
var mvs_values = ParameterFactory.named_parameters(
['parts', 's'],
[
[[1, 2, 3], '1.2.3'],
[[1, 2, 3, 4, 5], '1.2.3.4.5'],
[['a', 'b', 'c'], 'a.b.c'],
[[9, 'q', 3, 'foo', 10], '9.q.3.foo.10'],
[{'major':1, 'minor':2, "patch":3}, '1.2.3'],
[{'major':4, 'minor':5, "patch":6, "status":9, "build":9}, '4.5.6'],
['1.2.3', '1.2.3'],
['1.a.b.4.9.z', '1.a.b.4.9.z']
])
func test_make_version_string_with_arrays(params = use_parameters(mvs_values)):
var result = Vnt.make_version_string(params.parts)
assert_eq(result, params.s)
var mva_values = ParameterFactory.named_parameters(
['v', 'expected'],
[
['1.2.3', [1, 2, 3]],
['1.2.3.4.5', [1, 2, 3, 4, 5]],
['a.b.c', ['a', 'b', 'c']],
['9.q.3.foo.10', [9, 'q', 3, 'foo', 10]],
[{'major':1, 'minor':2, "patch":3}, [1, 2, 3]],
[{'major':4, 'minor':5, "patch":6, "status":9, "build":9}, [4, 5, 6]],
[[1,2,3], [1,2,3]],
[[4, 5, 6, 7, 8], [4, 5, 6, 7, 8]]
])
func test_make_version_array(params = use_parameters(mva_values)):
var result = Vnt.make_version_array(params.v)
assert_eq(result, params.expected)
var ivg_values = ParameterFactory.named_parameters(
['v', 'r', 'expected'],
[
['1.2.3', '1.2.3', true],
['2.0.0', '1.0.0', true],
['1.0.1', '1.0.0', true],
['1.1.0', '1.0.0', true],
['1.1.1', '1.0.0', true],
['1.2.5', '1.0.10', true],
['3.3.0', '3.2.3', true],
['4.0.0', '3.2.0', true],
['4.5.6', '1', true],
['4.5.6', '4', true],
['3.0.0', '3.0.1', false],
['1.2.3', '2.0.0', false],
['1.2.1', '1.2.3', false],
['1.2.3', '1.3.0', false],
['3.6', '3.6.1', false],
['3', '3.6', false]
])
func test_is_version_gte(params = use_parameters(ivg_values)):
assert_eq(Vnt.is_version_gte(params.v, params.r), params.expected,
str(params.v, ' >= ', params.r, ' = ', params.expected))
var ivl_values = ParameterFactory.named_parameters(
['v', 'r', 'expected'],
[
['1.2.3', '1.2.3', true],
['1.0.0', '2.0.0', true],
['1.0.0', '1.1.0', true],
['1.0.0', '1.0.1', true],
['3.6', '3.6.1', true],
['2.0.0', '1.0.0', false],
['1.1.0', '1.0.0', false],
['1.0.1', '1.0.0', false],
])
func test_is_version_lte(params = use_parameters(ivl_values)):
assert_eq(Vnt.is_version_lte(params.v, params.r), params.expected,
str(params.v, ' <= ', params.r, ' = ', params.expected))
var ive_values = ParameterFactory.named_parameters(
['v', 'r', 'expected'],
[
['1.2.3', '1.2.3', true],
['1.2.0', '1.2', true],
['1.0.0', '1', true],
['1.2.4', '1.2.3', false],
['1.3.3', '1.2.3', false],
['2.2.3', '1.2.3', false],
['1.2.3', '1.2.3.4', false],
['1.2.3', '1.2', false],
['1.2', '1', false]
])
func test_is_version_eq(params = use_parameters(ive_values)):
assert_eq(Vnt.is_version_eq(params.v, params.r), params.expected,
str(params.v, ' == ', params.r, ' = ', params.expected))
# class TestVersionCheck:
# extends 'res://addons/gut/test.gd'
# var Utils = load('res://addons/gut/utils.gd')
# func _fake_engine_version(version):
# var parsed = version.split('.')
# return{'major':parsed[0], 'minor':parsed[1], 'patch':parsed[2]}
# var test_ok_versions = ParameterFactory.named_parameters(
# ['engine_version', 'req_version', 'expected_result'],
# [
# ])
# func test_is_version_ok(p=use_parameters(test_ok_versions)):
# var utils = autofree(Utils.new())
# var engine_info = _fake_engine_version(p.engine_version)
# var req_version = p.req_version.split('.')
# assert_eq(utils.is_version_ok(engine_info, req_version), p.expected_result,
# str(p.engine_version, ' >= ', p.req_version))
# var test_is_versions = ParameterFactory.named_parameters(
# ['engine_version', 'expected_version', 'expected_result'],
# [
# ])
# func test_is_godot_version(p=use_parameters(test_is_versions)):
# var utils = autofree(Utils.new())
# var engine_info = _fake_engine_version(p.engine_version)
# assert_eq(utils.is_godot_version(p.expected_version, engine_info), p.expected_result,
# str(p.engine_version, ' is ', p.expected_version))