/
githubmirror
/
roslyn
Обзор
Документация
Войти
/
githubmirror
/
roslyn
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/Features/VisualBasicTest/ConvertNumericLiteral/ConvertNumericLiteralTests.vb
153 строки
5 KB
Cyrus Najmabadi
Organize VB imports
27 июн 2025, 21:53
27 июн 2025, 21:53
e9c47fd
Код
Авторство
О чём код?
' 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 System.Collections.Immutable Imports Microsoft.CodeAnalysis.CodeActions Imports Microsoft.CodeAnalysis.CodeRefactorings Imports Microsoft.CodeAnalysis.Editor.VisualBasic.UnitTests.CodeRefactorings Imports Microsoft.CodeAnalysis.VisualBasic.ConvertNumericLiteral Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.UnitTests.CodeActions.ConvertNumericLiteral <Trait(Traits.Feature, Traits.Features.CodeActionsConvertNumericLiteral)> Public Class ConvertNumericLiteralTests Inherits AbstractVisualBasicCodeActionTest_NoEditor Protected Overrides Function CreateCodeRefactoringProvider(workspace As TestWorkspace, parameters As TestParameters) As CodeRefactoringProvider Return New VisualBasicConvertNumericLiteralCodeRefactoringProvider() End Function Protected Overrides Function MassageActions(actions As ImmutableArray(Of CodeAction)) As ImmutableArray(Of CodeAction) Return FlattenActions(actions) End Function Private Enum Refactoring ChangeBase1 ChangeBase2 AddOrRemoveDigitSeparators End Enum Private Async Function TestMissingOneAsync(initial As String) As Task Await TestMissingInRegularAndScriptAsync(CreateTreeText("[||]" + initial)) End Function Private Async Function TestFixOneAsync(initial As String, expected As String, refactoring As Refactoring) As Task Await TestInRegularAndScriptAsync(CreateTreeText("[||]" + initial), CreateTreeText(expected), index:=DirectCast(refactoring, Integer)) End Function Private Shared Function CreateTreeText(initial As String) As String Return " Class X Sub M() Dim x = " + initial + " End Sub End Class" End Function <Fact> Public Async Function TestRemoveDigitSeparators() As Task Await TestFixOneAsync("&B1_0_01UL", "&B1001UL", Refactoring.AddOrRemoveDigitSeparators) End Function <Fact> Public Async Function TestConvertToBinary() As Task Await TestFixOneAsync("5", "&B101", Refactoring.ChangeBase1) End Function <Fact> Public Async Function TestConvertToDecimal() As Task Await TestFixOneAsync("&B101", "5", Refactoring.ChangeBase1) End Function <Fact> Public Async Function TestConvertToHex() As Task Await TestFixOneAsync("10", "&HA", Refactoring.ChangeBase2) End Function <Fact> Public Async Function TestSeparateThousands() As Task Await TestFixOneAsync("100000000", "100_000_000", Refactoring.AddOrRemoveDigitSeparators) End Function <Fact> Public Async Function TestSeparateWords() As Task Await TestFixOneAsync("&H1111abcd1111", "&H1111_abcd_1111", Refactoring.AddOrRemoveDigitSeparators) End Function <Fact> Public Async Function TestSeparateNibbles() As Task Await TestFixOneAsync("&B10101010", "&B1010_1010", Refactoring.AddOrRemoveDigitSeparators) End Function <Fact> Public Async Function TestMissingOnFloatingPoint() As Task Await TestMissingOneAsync("1.1") End Function <Fact> Public Async Function TestMissingOnScientificNotation() As Task Await TestMissingOneAsync("1e5") End Function <Fact> Public Async Function TestConvertToDecimal_02() As Task Await TestFixOneAsync("&H1e5", "485", Refactoring.ChangeBase1) End Function <Fact> Public Async Function TestTypeCharacter() As Task Await TestFixOneAsync("&H1e5UL", "&B111100101UL", Refactoring.ChangeBase2) End Function <Fact, WorkItem("https://github.com/dotnet/roslyn/issues/19225")> Public Async Function TestPreserveTrivia() As Task Await TestInRegularAndScriptAsync( "Class X Sub M() Dim x As Integer() = { [||]&H1, &H2 } End Sub End Class", "Class X Sub M() Dim x As Integer() = { &B1, &H2 } End Sub End Class", index:=Refactoring.ChangeBase2) End Function <Fact, WorkItem("https://github.com/dotnet/roslyn/issues/19369")> Public Async Function TestCaretPositionAtTheEnd() As Task Await TestInRegularAndScriptAsync( "Class C Dim a As Integer = 42[||] End Class", "Class C Dim a As Integer = &B101010 End Class", index:=Refactoring.ChangeBase1) End Function <Fact> Public Async Function TestSelectionMatchesToken() As Task Await TestInRegularAndScriptAsync( "Class C Dim a As Integer = [|42|] End Class", "Class C Dim a As Integer = &B101010 End Class", index:=Refactoring.ChangeBase1) End Function <Fact> Public Async Function TestSelectionDoesntMatchToken() As Task Await TestMissingInRegularAndScriptAsync( "Class C Dim a As Integer = [|42 * 2|] End Class") End Function End Class End Namespace