ErrorsManager/VB/Tests.vb

299 lines
14 KiB
VB.net

Imports System
Namespace ErrorsManager
Class FullError
Public _integer As Integer
Public _string As String
Public array As Byte()
Public Sub New(errors As ErrorsManager, _integer As Integer)
Me._integer = _integer
_string = errors.to_string(_integer)
array = errors.to_array(_integer)
End Sub
Public Sub New(errors As ErrorsManager, _string As String)
_integer = errors.to_integer(_string)
Me._string = _string
array = errors.to_array(_string)
End Sub
Public Sub New(errors As ErrorsManager, array As Byte())
_integer = errors.to_integer(array)
_string = errors.to_string(array)
Me.array = array
End Sub
Public Shared Function print(array As Byte()) As String
Return "[" & String.Join(", ", array) & "]"
End Function
End Class
Class Tests
Public Shared Sub errors()
Dim errors As New ErrorsManager()
Dim [error] As New FullError(errors, 217934237)
Dim reset As New FullError(errors, 0)
reset._integer = errors.reset([error]._integer, -5, 12)
reset._string = errors.reset([error]._string, -5, 12)
reset.array = errors.reset([error].array, -5, 12)
Console.WriteLine($"RESET: from {-5} bits {12}")
Console.WriteLine($"INTEGER: {errors.to_string_binary([error]._integer)} - {errors.to_string_binary(reset._integer)}")
Console.WriteLine($"STRING: {errors.to_string_binary([error]._string)} - {errors.to_string_binary(reset._string)}")
Console.WriteLine($"ARRAY: {errors.to_string_binary([error].array)} - {errors.to_string_binary(reset.array)}")
Console.WriteLine()
End Sub
Public Shared Function conversions(Optional tests As Integer = 10, Optional inputs As Object = Nothing) As ErrorsManager
Dim errors As New ErrorsManager(inputs)
Dim seed As New Random()
For i As Integer = 0 To tests - 1
Dim [error] As New FullError(errors, seed.Next(0, 1 << 16))
Console.WriteLine($"INTEGER: {errors.to_integer([error]._integer)}, {errors.to_integer([error]._string)}, {errors.to_integer([error].array)}")
Console.WriteLine($"STRING: {errors.to_string([error]._integer)}, {errors.to_string([error]._string)}, {errors.to_string([error].array)}")
Console.WriteLine($"ARRAY: {FullError.print(errors.to_array([error]._integer))}, {FullError.print(errors.to_array([error]._string))}, {FullError.print(errors.to_array([error].array))}")
Console.WriteLine()
Next
Return errors
End Function
Public Shared Sub alphabet(Optional tests As Integer = 10)
Dim seed As New Random()
For i As Integer = 0 To tests - 1
Dim errors As ErrorsManager = conversions(1, New Dictionary(Of String, Object)() From {
{"base", seed.Next(2, 128)}
})
Console.WriteLine($"^^^ ALPHABET: {String.Join(", ", errors.get_alphabet())} ^^^")
Console.WriteLine()
Next
End Sub
Public Shared Sub bitwise(Optional tests As Integer = 10)
Dim errors As New ErrorsManager()
Dim seed As New Random()
For i As Integer = 0 To tests - 1
Dim [error] As New FullError(errors, seed.Next(0, 1 << seed.Next(0, 16)))
Dim shifted As New FullError(errors, 0)
Dim unshifted As New FullError(errors, 0)
Dim bitwise As Integer = seed.Next(-10, 10)
Console.WriteLine($"BITWISE: {bitwise}")
shifted._integer = errors.bitwise([error]._integer, bitwise)
shifted._string = errors.bitwise([error]._string, bitwise)
shifted.array = errors.bitwise([error].array, bitwise)
unshifted._integer = errors.bitwise(shifted._integer, -bitwise)
unshifted._string = errors.bitwise(shifted._string, -bitwise)
unshifted.array = errors.bitwise(shifted.array, -bitwise)
Console.WriteLine($"INTEGER: {errors.to_string_binary([error]._integer)} - {[error]._integer}")
Console.WriteLine($"STRING: {errors.to_string_binary([error]._string)} - {[error]._string}")
Console.WriteLine($"ARRAY: {errors.to_string_binary([error].array)} - {FullError.print([error].array)}")
Console.WriteLine($"INTEGER: {errors.to_string_binary(shifted._integer)} - {shifted._integer}")
Console.WriteLine($"STRING: {errors.to_string_binary(shifted._string)} - {shifted._string}")
Console.WriteLine($"ARRAY: {errors.to_string_binary(shifted.array)} - {FullError.print(shifted.array)}")
Console.WriteLine($"INTEGER: {errors.to_string_binary(unshifted._integer)} - {unshifted._integer}")
Console.WriteLine($"STRING: {errors.to_string_binary(unshifted._string)} - {unshifted._string}")
Console.WriteLine($"ARRAY: {errors.to_string_binary(unshifted.array)} - {FullError.print(unshifted.array)}")
Console.WriteLine()
Next
End Sub
Public Shared Sub bitwise_sucesive(Optional tests As Integer = 10)
Dim errors As New ErrorsManager()
Dim [error] As New FullError(errors, New Random().Next(0, 1 << 16))
Console.WriteLine($"INTEGER: {errors.to_string_binary([error]._integer)} - {[error]._integer}")
Console.WriteLine($"STRING: {errors.to_string_binary([error]._string)} - {[error]._string}")
Console.WriteLine($"ARRAY: {errors.to_string_binary([error].array)} - {FullError.print([error].array)}")
Console.WriteLine()
For i As Integer = -tests To tests - 1
Dim shifted As New FullError(errors, 0)
Console.WriteLine($"BITWISE: {i}")
shifted._integer = errors.bitwise([error]._integer, i)
shifted._string = errors.bitwise([error]._string, i)
shifted.array = errors.bitwise([error].array, i)
Console.WriteLine($"INTEGER: {errors.to_string_binary(shifted._integer)} - {shifted._integer}")
Console.WriteLine($"STRING: {errors.to_string_binary(shifted._string)} - {shifted._string}")
Console.WriteLine($"ARRAY: {errors.to_string_binary(shifted.array)} - {FullError.print(shifted.array)}")
Console.WriteLine()
Next
End Sub
Public Shared Sub bits(Optional tests As Integer = 10)
Dim errors As New ErrorsManager()
Dim seed As New Random()
For i As Integer = 0 To tests - 1
Dim [error] As New FullError(errors, seed.Next(0, 1 << seed.Next(0, 28)))
Dim from_value As Integer = seed.Next(-15, 15)
Dim bits_value As Integer = seed.Next(-13, 13)
Dim from As Integer() = {from_value, from_value, from_value}
Dim bits As Integer() = {bits_value, bits_value, bits_value}
errors.get_from_bits([error]._integer, from(0), bits(0))
errors.get_from_bits([error]._string, from(1), bits(1))
errors.get_from_bits([error].array, from(2), bits(2))
Console.WriteLine($"CODE: {[error]._integer} - {[error]._string} - {FullError.print([error].array)}")
Console.WriteLine($"ERROR: {errors.to_string_binary([error]._integer)} - {errors.get_bits([error]._integer)} - {errors.get_bits([error]._string)} - {errors.get_bits([error].array)}")
Console.WriteLine($"FROM: {from_value} - {from(0)}, {from(1)}, {from(2)}")
Console.WriteLine($"BITS: {bits_value} - {bits(0)}, {bits(1)}, {bits(2)}")
Console.WriteLine()
Next
End Sub
Public Shared Sub reset(Optional tests As Integer = 10)
Dim errors As New ErrorsManager()
Dim seed As New Random()
For i As Integer = 0 To tests - 1
Dim [error] As New FullError(errors, seed.Next(0, 1 << 28))
Dim [from] As Integer = seed.Next(-15, 15)
Dim bits As Integer = seed.Next(-13, 13)
Dim reset As New FullError(errors, 0)
reset._integer = errors.reset([error]._integer, [from], bits)
reset._string = errors.reset([error]._string, [from], bits)
reset.array = errors.reset([error].array, [from], bits)
Console.WriteLine($"RESET: from {[from]} bits {bits}")
Console.WriteLine($"INTEGER: {errors.to_string_binary([error]._integer)} - {errors.to_string_binary(reset._integer)}")
Console.WriteLine($"STRING: {errors.to_string_binary([error]._string)} - {errors.to_string_binary(reset._string)}")
Console.WriteLine($"ARRAY: {errors.to_string_binary([error].array)} - {errors.to_string_binary(reset.array)}")
Console.WriteLine()
Next
End Sub
Public Shared Sub ranges(Optional tests As Integer = 10)
Dim errors As New ErrorsManager()
Dim seed As New Random()
For i As Integer = 0 To tests - 1
Dim [error] As New FullError(errors, seed.Next(0, 1 << 28))
Dim [from] As Integer = seed.Next(-15, 15)
Dim bits As Integer = seed.Next(-13, 13)
Dim range As New FullError(errors, 0)
Console.WriteLine($"RANGE: from {[from]} bits {bits}")
errors.get_from_bits([error]._string, [from], bits)
Console.WriteLine($"REAL: from {[from]} bits {bits}")
range._integer = errors.get_range([error]._integer, [from], bits)
range._string = errors.get_range([error]._string, [from], bits)
range.array = errors.get_range([error].array, [from], bits)
Console.WriteLine($"INTEGER: {errors.to_string_binary([error]._integer)} - {errors.to_string_binary(range._integer)}")
Console.WriteLine($"STRING: {errors.to_string_binary([error]._string)} - {errors.to_string_binary(range._string)}")
Console.WriteLine($"ARRAY: {errors.to_string_binary([error].array)} - {errors.to_string_binary(range.array)}")
Console.WriteLine()
Next
End Sub
Public Shared Sub has(Optional tests As Integer = 10)
Dim errors As New ErrorsManager()
Dim seed As New Random()
For i As Integer = 0 To tests - 1
Dim [error] As New FullError(errors, seed.Next(0, 1 << 28))
Dim [from] As Integer = seed.Next(-15, 15)
Dim bits As Integer = seed.Next(-13, 13)
Console.WriteLine($"HAS: from {[from]} bits {bits}")
Console.WriteLine($"INTEGER: {errors.has([error]._integer, [from], bits)} - {errors.to_string_binary([error]._integer)} - {errors.to_string_binary(errors.get_range([error]._integer, [from], bits))}")
Console.WriteLine($"STRING: {errors.has([error]._string, [from], bits)} - {errors.to_string_binary([error]._string)} - {errors.to_string_binary(errors.get_range([error]._string, [from], bits))}")
Console.WriteLine($"ARRAY: {errors.has([error].array, [from], bits)} - {errors.to_string_binary([error].array)} - {errors.to_string_binary(errors.get_range([error].array, [from], bits))}")
Console.WriteLine()
Next
End Sub
Public Shared Sub [set](Optional tests As Integer = 10)
Dim errors As New ErrorsManager()
Dim seed As New Random()
For i As Integer = 0 To tests - 1
Dim [error] As New FullError(errors, seed.Next(0, 1 << 15))
Dim value As New FullError(errors, seed.Next(0, 1 << 15))
Dim [from] As Integer = seed.Next(-15, 15)
Dim bits As Integer = seed.Next(-13, 13)
Dim set_integer As New FullError(errors, 0)
Dim set_string As New FullError(errors, 0)
Dim set_array As New FullError(errors, 0)
set_integer._integer = errors.set([error]._integer, value._integer, [from], bits)
set_string._integer = errors.set([error]._integer, value._string, [from], bits)
set_array._integer = errors.set([error]._integer, value.array, [from], bits)
set_integer._string = errors.set([error]._string, value._integer, [from], bits)
set_string._string = errors.set([error]._string, value._string, [from], bits)
set_array._string = errors.set([error]._string, value.array, [from], bits)
set_integer.array = errors.set([error].array, value._integer, [from], bits)
set_string.array = errors.set([error].array, value._string, [from], bits)
set_array.array = errors.set([error].array, value.array, [from], bits)
Console.WriteLine($"SET: from {[from]} bits {bits} to [{value._string}, {FullError.print(value.array)}, {value._integer}]")
Console.WriteLine($"ERROR: {errors.to_string_binary([error]._integer)} - VALUE: {errors.to_string_binary(value._integer)}")
Console.WriteLine($"INTEGER: {errors.to_string_binary(set_integer._integer)} - {errors.to_string_binary(set_integer._string)} - {errors.to_string_binary(set_integer.array)}")
Console.WriteLine($"STRING: {errors.to_string_binary(set_string._integer)} - {errors.to_string_binary(set_string._string)} - {errors.to_string_binary(set_string.array)}")
Console.WriteLine($"ARRAY: {errors.to_string_binary(set_array._integer)} - {errors.to_string_binary(set_array._string)} - {errors.to_string_binary(set_array.array)}")
Console.WriteLine()
Next
End Sub
End Class
End Namespace