package regression import ( "modify/processor" "os" "path/filepath" "testing" ) func TestTalentsMechanicOutOfRange(t *testing.T) { given := ` ` actual := ` ` p := &processor.RegexProcessor{} result, mods, matches, err := p.ProcessContent(given, `!anyvalue="(?!num)"!anyvalue="(?!num)"!anyvalue="(?!num)"!anyamount="(?!num)"`, "movementspeed=round(movementspeed*1.5, 2) duration=round(duration*2, 2) repairspeed=round(repairspeed*2, 2) durationv=duration") if err != nil { t.Fatalf("Error processing content: %v", err) } if matches != 1 { t.Errorf("Expected 1 match, got %d", matches) } if mods != 1 { t.Errorf("Expected 1 modification, got %d", mods) } if result != actual { t.Errorf("expected %s, got %s", actual, result) } } func TestIndexExplosions_ShouldNotPanic(t *testing.T) { cwd, err := os.Getwd() if err != nil { t.Fatalf("Error getting current working directory: %v", err) } given, err := os.ReadFile(filepath.Join(cwd, "..", "testfiles", "OutpostItems.xml")) if err != nil { t.Fatalf("Error reading file: %v", err) } expected, err := os.ReadFile(filepath.Join(cwd, "..", "testfiles", "OutpostItemsExpected.xml")) if err != nil { t.Fatalf("Error reading file: %v", err) } p := &processor.RegexProcessor{} result, mods, matches, err := p.ProcessContent(string(given), `(?-s)LightComponent!anyrange="(!num)"`, "*4") if err != nil { t.Fatalf("Error processing content: %v", err) } if matches != 45 { t.Errorf("Expected 45 match, got %d", matches) } if mods != 45 { t.Errorf("Expected 45 modification, got %d", mods) } if string(result) != string(expected) { t.Errorf("expected %s, got %s", expected, result) } }