Private Sub isSame(a As Object, b As Object) As Boolean
Dim ser As B4XSerializator
Dim ab() As Byte = ser.ConvertObjectToBytes(a)
Dim bb() As Byte = ser.ConvertObjectToBytes(b)
For i = 0 To ab.Length - 1
If ab(i) <> bb(i) Then Return False
Next
Return True
End Sub
Sub MapsAreEqual(mp1 As Map ,mp2 As Map) As Boolean
If mp1.Size <> mp2.Size Then Return False
For Each Key As Object In mp1.Keys
If mp1.Get(Key) Is Map Then
If mp2.Get(Key) Is Map Then
If MapsAreEqual(mp1.Get(Key),mp2.Get(Key)) = False Then
Return False
End If
Else
Return False
End If
Else
If mp2.Get(Key) Is Map Then Return False
If mp1.Get(Key) = Null Or mp2.Get(Key) = Null Then Return False 'fail if null found anywhere... sorry
If Not(isSame(mp1.Get(Key),mp2.Get(Key))) Then
Return False
End If
End If
Next
Return True
End Sub