Files
Dendraspis 000dbf10f3 Voodoo
2022-04-02 16:52:30 +02:00

63 lines
2.8 KiB
VB.net

Imports System.Text.RegularExpressions
Public Class ConsolAppTester
Property IgnoredSwitches As String = ""
Property UndocumentedSwitches As String = ""
Property Package As Package
Property CodeFile As String
Function Test() As String
Dim log = BR
log += "ignored switches" + BR
log += "----------------" + BR
log += "found in the documentation but not implemented" + BR2
IgnoredSwitches = IgnoredSwitches.Trim.FixBreak.Replace(BR, " ").ReplaceRecursive(" ", " ")
Dim ignore = IgnoredSwitches.Split(" "c).Select(Function(x) "--" + x).ToArray
log += ignore.Join(BR) + BR2
log += "undocumented switches" + BR
log += "---------------------" + BR
log += "implemented even though not documented" + BR2
UndocumentedSwitches = UndocumentedSwitches.Trim.FixBreak.Replace(BR, " ").ReplaceRecursive(" ", " ")
Dim undocumented = UndocumentedSwitches.Split(" "c).Select(Function(x) "--" + x).ToArray
log += undocumented.Join(BR) + BR2
log += "documented switches" + BR
log += "-------------------" + BR
log += "found in the documentation" + BR2
Dim fullHelp = Package.CreateHelpfile()
Dim compressedHelp = fullHelp.Replace("--(no-)", "--").Replace("--[no-]", "--").Replace("--no-", "--")
Dim documented = Regex.Matches(compressedHelp, "--[\w-]+").OfType(Of Match).Select(Function(x) x.Value)
log += documented.Join(BR) + BR2
Dim compressedCode = CodeFile.ReadAllText.Replace("--no-", "--")
Dim implemented = Regex.Matches(compressedCode, "--[\w-]+").OfType(Of Match).Select(Function(x) x.Value)
log += "implemented switches" + BR
log += "-------------------" + BR
log += "implemetation found in StaxRip code" + BR2
log += implemented.Join(BR) + BR2
Dim missing = implemented.Where(Function(x) Not documented.Contains(x) AndAlso Not undocumented.Contains(x))
Dim unknown = documented.Where(Function(x) Not implemented.Contains(x) AndAlso Not ignore.Contains(x)).ToList()
unknown.Sort()
Dim unnecessaryIgnore = ignore.Where(Function(x) implemented.Contains(x))
log += "full documentation" + BR
log += "------------------" + BR
log += fullHelp
'log.WriteUTF8File(Folder.Desktop + Package.Name + ".txt")
Dim message = ""
If unnecessaryIgnore.Count > 0 Then
message += BR3 + $"unnecessary on {Package.Name} ignore list:" + BR2 + unnecessaryIgnore.Join(" ")
End If
If missing.Count > 0 Then
message += BR3 + $"removed from {Package.Name}:" + BR2 + missing.Join(" ")
End If
If unknown.Count > 0 Then
message += BR3 + $"{Package.Name} todo:" + BR2 + unknown.Join(" ")
End If
Return message
End Function
End Class