feat(backend): Implement multi-take sequence differencing and text formatting utility
This commit is contained in:
59
tests/test_synthesis_formatter.py
Normal file
59
tests/test_synthesis_formatter.py
Normal file
@@ -0,0 +1,59 @@
|
||||
import pytest
|
||||
from src.synthesis_formatter import format_takes_diff
|
||||
|
||||
def test_format_takes_diff_empty():
|
||||
assert format_takes_diff({}) == ""
|
||||
|
||||
def test_format_takes_diff_single_take():
|
||||
takes = {
|
||||
"take1": [
|
||||
{"role": "user", "content": "hello"},
|
||||
{"role": "assistant", "content": "hi"}
|
||||
]
|
||||
}
|
||||
expected = "=== Shared History ===\nuser: hello\nassistant: hi\n\n=== Variations ===\n"
|
||||
assert format_takes_diff(takes) == expected
|
||||
|
||||
def test_format_takes_diff_common_prefix():
|
||||
takes = {
|
||||
"take1": [
|
||||
{"role": "user", "content": "hello"},
|
||||
{"role": "assistant", "content": "hi"},
|
||||
{"role": "user", "content": "how are you?"},
|
||||
{"role": "assistant", "content": "I am fine."}
|
||||
],
|
||||
"take2": [
|
||||
{"role": "user", "content": "hello"},
|
||||
{"role": "assistant", "content": "hi"},
|
||||
{"role": "user", "content": "what is the time?"},
|
||||
{"role": "assistant", "content": "It is noon."}
|
||||
]
|
||||
}
|
||||
expected = (
|
||||
"=== Shared History ===\n"
|
||||
"user: hello\n"
|
||||
"assistant: hi\n\n"
|
||||
"=== Variations ===\n"
|
||||
"[take1]\n"
|
||||
"user: how are you?\n"
|
||||
"assistant: I am fine.\n\n"
|
||||
"[take2]\n"
|
||||
"user: what is the time?\n"
|
||||
"assistant: It is noon.\n"
|
||||
)
|
||||
assert format_takes_diff(takes) == expected
|
||||
|
||||
def test_format_takes_diff_no_common_prefix():
|
||||
takes = {
|
||||
"take1": [{"role": "user", "content": "a"}],
|
||||
"take2": [{"role": "user", "content": "b"}]
|
||||
}
|
||||
expected = (
|
||||
"=== Shared History ===\n\n"
|
||||
"=== Variations ===\n"
|
||||
"[take1]\n"
|
||||
"user: a\n\n"
|
||||
"[take2]\n"
|
||||
"user: b\n"
|
||||
)
|
||||
assert format_takes_diff(takes) == expected
|
||||
Reference in New Issue
Block a user