#include <iostream>
#include "uCalc.h"

using namespace std;
using namespace uCalcSoftware;

int main() {
   uCalc uc;
   auto t = uc.NewTransformer();
   auto ruleA = t.FromTo("a", "A");
   auto ruleB = t.FromTo("b", "B");
   ruleA.GlobalMinimum(3);

   // Case 1: Fails (only 2 'a's)
   cout << "--- Case 1: Fails ---" << endl;
   t.Text("a b a b");
   t.Transform();
   cout << "Matches Found: " << t.Matches().Count() << endl; // Should be 0
   cout << "Result: " << t << endl;

   // Case 2: Succeeds (3 'a's)
   cout << "" << endl;
   cout << "--- Case 2: Succeeds ---" << endl;
   t.Text("a b a b a");
   t.Transform();
   cout << "Matches Found: " << t.Matches().Count() << endl; // Should be 5 (3 'A's and 2 'B's)
   cout << "Result: " << t << endl;
}