reinstalling GDUnit from assetlib
Some checks failed
Create tag and build when new code gets to main / Export (push) Failing after 6m41s
Some checks failed
Create tag and build when new code gets to main / Export (push) Failing after 6m41s
This commit is contained in:
@@ -0,0 +1,187 @@
|
||||
extends GdUnitVectorAssert
|
||||
|
||||
var _base: GdUnitAssertImpl
|
||||
var _current_type: int
|
||||
var _type_check: bool
|
||||
|
||||
func _init(current: Variant, type_check := true) -> void:
|
||||
_type_check = type_check
|
||||
_base = GdUnitAssertImpl.new(current)
|
||||
# save the actual assert instance on the current thread context
|
||||
GdUnitThreadManager.get_current_context().set_assert(self)
|
||||
if not _validate_value_type(current):
|
||||
@warning_ignore("return_value_discarded")
|
||||
report_error("GdUnitVectorAssert error, the type <%s> is not supported." % GdObjects.typeof_as_string(current))
|
||||
_current_type = typeof(current)
|
||||
|
||||
|
||||
func _notification(event :int) -> void:
|
||||
if event == NOTIFICATION_PREDELETE:
|
||||
if _base != null:
|
||||
_base.notification(event)
|
||||
_base = null
|
||||
|
||||
|
||||
func _validate_value_type(value :Variant) -> bool:
|
||||
return (
|
||||
value == null
|
||||
or typeof(value) in [
|
||||
TYPE_VECTOR2,
|
||||
TYPE_VECTOR2I,
|
||||
TYPE_VECTOR3,
|
||||
TYPE_VECTOR3I,
|
||||
TYPE_VECTOR4,
|
||||
TYPE_VECTOR4I
|
||||
]
|
||||
)
|
||||
|
||||
|
||||
func _validate_is_vector_type(value :Variant) -> bool:
|
||||
var type := typeof(value)
|
||||
if type == _current_type or _current_type == TYPE_NIL:
|
||||
return true
|
||||
@warning_ignore("return_value_discarded")
|
||||
report_error(GdAssertMessages.error_is_wrong_type(_current_type, type))
|
||||
return false
|
||||
|
||||
|
||||
func current_value() -> Variant:
|
||||
return _base.current_value()
|
||||
|
||||
|
||||
func report_success() -> GdUnitVectorAssert:
|
||||
@warning_ignore("return_value_discarded")
|
||||
_base.report_success()
|
||||
return self
|
||||
|
||||
|
||||
func report_error(error :String) -> GdUnitVectorAssert:
|
||||
@warning_ignore("return_value_discarded")
|
||||
_base.report_error(error)
|
||||
return self
|
||||
|
||||
|
||||
func failure_message() -> String:
|
||||
return _base.failure_message()
|
||||
|
||||
|
||||
func override_failure_message(message: String) -> GdUnitVectorAssert:
|
||||
@warning_ignore("return_value_discarded")
|
||||
_base.override_failure_message(message)
|
||||
return self
|
||||
|
||||
|
||||
func append_failure_message(message :String) -> GdUnitVectorAssert:
|
||||
@warning_ignore("return_value_discarded")
|
||||
_base.append_failure_message(message)
|
||||
return self
|
||||
|
||||
|
||||
func is_null() -> GdUnitVectorAssert:
|
||||
@warning_ignore("return_value_discarded")
|
||||
_base.is_null()
|
||||
return self
|
||||
|
||||
|
||||
func is_not_null() -> GdUnitVectorAssert:
|
||||
@warning_ignore("return_value_discarded")
|
||||
_base.is_not_null()
|
||||
return self
|
||||
|
||||
|
||||
func is_equal(expected: Variant) -> GdUnitVectorAssert:
|
||||
if _type_check and not _validate_is_vector_type(expected):
|
||||
return self
|
||||
@warning_ignore("return_value_discarded")
|
||||
_base.is_equal(expected)
|
||||
return self
|
||||
|
||||
|
||||
func is_not_equal(expected: Variant) -> GdUnitVectorAssert:
|
||||
if _type_check and not _validate_is_vector_type(expected):
|
||||
return self
|
||||
@warning_ignore("return_value_discarded")
|
||||
_base.is_not_equal(expected)
|
||||
return self
|
||||
|
||||
|
||||
@warning_ignore("shadowed_global_identifier")
|
||||
func is_equal_approx(expected :Variant, approx :Variant) -> GdUnitVectorAssert:
|
||||
if not _validate_is_vector_type(expected) or not _validate_is_vector_type(approx):
|
||||
return self
|
||||
var current :Variant = current_value()
|
||||
var from :Variant = expected - approx
|
||||
var to :Variant = expected + approx
|
||||
if current == null or (not _is_equal_approx(current, from, to)):
|
||||
return report_error(GdAssertMessages.error_is_value(Comparator.BETWEEN_EQUAL, current, from, to))
|
||||
return report_success()
|
||||
|
||||
|
||||
func _is_equal_approx(current :Variant, from :Variant, to :Variant) -> bool:
|
||||
match typeof(current):
|
||||
TYPE_VECTOR2, TYPE_VECTOR2I:
|
||||
return ((current.x >= from.x and current.y >= from.y)
|
||||
and (current.x <= to.x and current.y <= to.y))
|
||||
TYPE_VECTOR3, TYPE_VECTOR3I:
|
||||
return ((current.x >= from.x and current.y >= from.y and current.z >= from.z)
|
||||
and (current.x <= to.x and current.y <= to.y and current.z <= to.z))
|
||||
TYPE_VECTOR4, TYPE_VECTOR4I:
|
||||
return ((current.x >= from.x and current.y >= from.y and current.z >= from.z and current.w >= from.w)
|
||||
and (current.x <= to.x and current.y <= to.y and current.z <= to.z and current.w <= to.w))
|
||||
_:
|
||||
push_error("Missing implementation '_is_equal_approx' for vector type %s" % typeof(current))
|
||||
return false
|
||||
|
||||
|
||||
func is_less(expected :Variant) -> GdUnitVectorAssert:
|
||||
if not _validate_is_vector_type(expected):
|
||||
return self
|
||||
var current :Variant = current_value()
|
||||
if current == null or current >= expected:
|
||||
return report_error(GdAssertMessages.error_is_value(Comparator.LESS_THAN, current, expected))
|
||||
return report_success()
|
||||
|
||||
|
||||
func is_less_equal(expected :Variant) -> GdUnitVectorAssert:
|
||||
if not _validate_is_vector_type(expected):
|
||||
return self
|
||||
var current :Variant = current_value()
|
||||
if current == null or current > expected:
|
||||
return report_error(GdAssertMessages.error_is_value(Comparator.LESS_EQUAL, current, expected))
|
||||
return report_success()
|
||||
|
||||
|
||||
func is_greater(expected :Variant) -> GdUnitVectorAssert:
|
||||
if not _validate_is_vector_type(expected):
|
||||
return self
|
||||
var current :Variant = current_value()
|
||||
if current == null or current <= expected:
|
||||
return report_error(GdAssertMessages.error_is_value(Comparator.GREATER_THAN, current, expected))
|
||||
return report_success()
|
||||
|
||||
|
||||
func is_greater_equal(expected :Variant) -> GdUnitVectorAssert:
|
||||
if not _validate_is_vector_type(expected):
|
||||
return self
|
||||
var current :Variant = current_value()
|
||||
if current == null or current < expected:
|
||||
return report_error(GdAssertMessages.error_is_value(Comparator.GREATER_EQUAL, current, expected))
|
||||
return report_success()
|
||||
|
||||
|
||||
func is_between(from :Variant, to :Variant) -> GdUnitVectorAssert:
|
||||
if not _validate_is_vector_type(from) or not _validate_is_vector_type(to):
|
||||
return self
|
||||
var current :Variant = current_value()
|
||||
if current == null or not (current >= from and current <= to):
|
||||
return report_error(GdAssertMessages.error_is_value(Comparator.BETWEEN_EQUAL, current, from, to))
|
||||
return report_success()
|
||||
|
||||
|
||||
func is_not_between(from :Variant, to :Variant) -> GdUnitVectorAssert:
|
||||
if not _validate_is_vector_type(from) or not _validate_is_vector_type(to):
|
||||
return self
|
||||
var current :Variant = current_value()
|
||||
if (current != null and current >= from and current <= to):
|
||||
return report_error(GdAssertMessages.error_is_value(Comparator.NOT_BETWEEN_EQUAL, current, from, to))
|
||||
return report_success()
|
||||
|
||||
Reference in New Issue
Block a user