from pathlib import Path
import subprocess,sys
out=Path(__file__).resolve().parent
base=Path('/Users/yixiay/Documents/codexWorkSpace/issues/output/597084-review/impact-2026-11-04/source')
root=base if '--baseline' in sys.argv else out.parent/'code';label='red' if '--baseline' in sys.argv else 'green'
f=out/'WordsRegressionProbe.java';f.write_text(r'''import cn.jojo.cc.common.utils.*;import java.util.*;
public class WordsRegressionProbe{static int failed;static void check(String text,List<String> expected){var actual=EnglishWords.tokenize(text).stream().map(t->t.text()).toList();boolean ok=actual.equals(expected);System.out.println((ok?"PASS ":"FAIL ")+text+" => "+actual);if(!ok)failed++;}public static void main(String[]args){check("cat2dog 3look up4",List.of("cat","dog","look","up"));check("low-temperature it's",List.of("low-temperature","it's"));check("1972",List.of());check("and/or",List.of("and","or"));check("cat /kæt/ dog [dɒɡ]",List.of("cat","dog"));check("cat /kat/ dog",List.of("cat","dog"));check("[ordinary words]",List.of("ordinary","words"));if(failed>0)System.exit(1);}}''')
cp=str(Path.home()/'.m2/repository/org/apache/commons/commons-lang3/3.9/commons-lang3-3.9.jar');classes=out/('words-'+label);classes.mkdir(exist_ok=True)
r=subprocess.run(['javac','-cp',cp,'-d',str(classes),str(root/'common/src/main/java/cn/jojo/cc/common/utils/EnglishWords.java'),str(base/'common/src/main/java/cn/jojo/cc/common/utils/TextNormalizer.java'),str(f)],capture_output=True,text=True)
if r.returncode: print(r.stderr);sys.exit(r.returncode)
r=subprocess.run(['java','-cp',str(classes)+':'+cp,'WordsRegressionProbe'],capture_output=True,text=True);(out/(label+'-words.txt')).write_text(r.stdout+r.stderr+'exit='+str(r.returncode)+'\n');print(r.stdout,r.stderr,'exit=',r.returncode);sys.exit(r.returncode)
