move tester to analyse.py
use cache