Imports System
Imports uCalcSoftware
Public Module Program
   Public Sub Main()
      Dim uc As New uCalc()
      Dim FruitsXML =
      "
<Fruits>
  <Fruit CommonName='Apple' />
  <Fruit CommonName='Banana' />
  <Fruit CommonName='Orange' />
</Fruits>
"
      
      Dim t As New uCalc.Transformer()
      t.Text = FruitsXML
      Dim fruitsTagRule = t.Pattern("<Fruits>")
      Dim fruitRule = t.Pattern("CommonName={@string:name}")
      
      Console.WriteLine("--- Using Minimum (Rule-Level Invalidation) ---")
      fruitRule.Minimum = 4 '// Rule fails if fewer than 4 fruits are found.
      t.Find()
      Console.WriteLine($"Match count when fruit rule fails: {t.Matches.Count()}")
      Console.WriteLine("Matches found:")
      For Each m In t.Matches
         Console.WriteLine($"  {m.Text}")
      Next
      
      Console.WriteLine("")
      Console.WriteLine("--- Using GlobalMinimum (Transformer-Level Invalidation) ---")
      fruitRule.Minimum = 0 '// Reset local minimum
      fruitRule.GlobalMinimum = 4 '// Transformer fails if fewer than 4 fruits are found.
      t.Find()
      Console.WriteLine($"Match count when global rule fails: {t.Matches.Count()}")
      Console.WriteLine("Matches found:")
      For Each m In t.Matches
         Console.WriteLine($"  {m.Text}")
      Next
   End Sub
End Module