|
' Licensed to the .NET Foundation under one or more agreements.
' The .NET Foundation licenses this file to you under the MIT license.
' See the LICENSE file in the project root for more information.
Imports Microsoft.VisualStudio.Debugger.Evaluation
Imports Xunit
Namespace Microsoft.CodeAnalysis.VisualBasic.ExpressionEvaluator.UnitTests
Public Class ArrayExpansionTests : Inherits VisualBasicResultProviderTestBase
<Fact>
Public Sub MultiDimensionalArrays()
Dim source = "
Class C
Dim _2d(,) as Integer = {{1,2},{3, 4}}
Dim _3d(,,)(,) as Integer = {{{_2d}}}
End Class
"
Dim assembly = GetAssembly(source)
Dim typeC = assembly.GetType("C")
Dim children = GetChildren(FormatResult("c", CreateDkmClrValue(Activator.CreateInstance(typeC))))
Verify(children,
EvalResult("_2d", "{Length=4}", "Integer(,)", "c._2d", DkmEvaluationResultFlags.Expandable Or DkmEvaluationResultFlags.CanFavorite),
EvalResult("_3d", "{Length=1}", "Integer(,,)(,)", "c._3d", DkmEvaluationResultFlags.Expandable Or DkmEvaluationResultFlags.CanFavorite))
children = GetChildren(children(1))
Verify(children,
EvalResult("(0, 0, 0)", "{Length=4}", "Integer(,)", "c._3d(0, 0, 0)", DkmEvaluationResultFlags.Expandable))
children = GetChildren(children(0))
Verify(children,
EvalResult("(0, 0)", "1", "Integer", "c._3d(0, 0, 0)(0, 0)"),
EvalResult("(0, 1)", "2", "Integer", "c._3d(0, 0, 0)(0, 1)"),
EvalResult("(1, 0)", "3", "Integer", "c._3d(0, 0, 0)(1, 0)"),
EvalResult("(1, 1)", "4", "Integer", "c._3d(0, 0, 0)(1, 1)"))
End Sub
End Class
End Namespace
|