"""Non-promoting worker/snapshot integration check; run from repository root."""
import json
from pathlib import Path
import sys

REPO = Path(__file__).resolve().parents[2]
sys.path.insert(0, str(REPO))
from tools import run_mlp_deep_sweep as sweep
from tools.verify_mlp_comparison_migration import verify_protected


def main():
    winner = sweep.normalise_param(sweep.load_winner('6H'))
    candidate = sweep.normalise_param(sweep.recommended_from_artifact(str(
        REPO / 'strategies/params/mlp/mlp_weights_COINBASE_BTCUSD_6H_grouped_v1_seed9090.json')))
    winner['source'], candidate['source'] = 'current', 'candidate'
    rows = [winner, candidate]
    snapshot = sweep.capture_comparison('6H', [row['mlp_weights_file'] for row in rows])
    sweep._COMPARISON = snapshot
    sequential, _ = sweep.evaluate_candidates('6H', rows, 1)
    parallel, workers = sweep.evaluate_candidates('6H', rows, 2)
    sharded, shards = sweep.evaluate_candidates_subprocess('6H', rows, 2)
    expected = json.dumps(sequential, sort_keys=True)
    assert expected == json.dumps(parallel, sort_keys=True)
    assert expected == json.dumps(sharded, sort_keys=True)
    snapshot.validate_sources(REPO)
    result = dict(status='passed', rows=len(rows), workers=workers, shards=shards,
                  fingerprint=snapshot.fingerprint, protected=verify_protected(), promotions=0)
    Path(__file__).with_suffix('.json').write_text(json.dumps(result, indent=2) + '\n')
    print(json.dumps(result))


if __name__ == '__main__':
    main()
