diff --git a/README.md b/README.md index a277d4c..b6dffba 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ -![Terminal demo: Python fit() code and verified 2,366 to 1,376 token savings from the first frame, followed by Core-first processing and optional Tokenfold Select. Select illustration only.](https://raw.githubusercontent.com/snchimata/tokenfold/main/docs/assets/tokenfold-demo.gif) +![Terminal demo: Python fit() code and verified 2,366 to 1,376 token savings from the first frame, followed by Core-first processing and optional Tokenfold Select. Select illustration only.](https://raw.githubusercontent.com/snchimata/tokenfold/a5aafaf9fb48047ed03e42e9cc379de49118b25d/docs/assets/tokenfold-demo.gif)
Demo scope and regeneration diff --git a/python-tests/test_readme_layout.py b/python-tests/test_readme_layout.py index cc34dba..de3d0d6 100644 --- a/python-tests/test_readme_layout.py +++ b/python-tests/test_readme_layout.py @@ -15,6 +15,11 @@ class ReadmeLayout(unittest.TestCase): def setUp(self): self.text = (ROOT / 'README.md').read_text(encoding='utf-8') + def test_demo_url_is_pinned_to_an_immutable_commit(self): + url = re.search(r'!\[Terminal demo:[^\]]+\]\(([^)]+)\)', self.text).group(1) + self.assertRegex(url, r'^https://raw\.githubusercontent\.com/snchimata/tokenfold/' + r'[0-9a-f]{40}/docs/assets/tokenfold-demo\.gif$') + def test_common_path_and_visible_limits(self): self.assertTrue(self.text.isascii()) self.assertEqual(self.text.count('Exact decode proves data recovery'), 1)