test: add build prefix test and debug chars counting [TAB-184] (#394)
* test: add count char test * chore: fix lint * chore * choreenable-blog
parent
3c7c8d9293
commit
74073aa77a
|
|
@ -91,7 +91,6 @@ fn build_prefix(language: &str, prefix: &str, snippets: Vec<String>) -> String {
|
||||||
lines.push(format!("== Snippet {} ==", i + 1));
|
lines.push(format!("== Snippet {} ==", i + 1));
|
||||||
for line in snippet.lines() {
|
for line in snippet.lines() {
|
||||||
lines.push(line.to_owned());
|
lines.push(line.to_owned());
|
||||||
count_characters += line.len();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
count_characters += snippet.len();
|
count_characters += snippet.len();
|
||||||
|
|
@ -358,4 +357,63 @@ mod tests {
|
||||||
assert_eq!(pb.build(language, segments), "");
|
assert_eq!(pb.build(language, segments), "");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_build_prefix_readable() {
|
||||||
|
let snippets = vec![
|
||||||
|
"def snippet_1():\n print(\"This is snipptet 1\")\n".to_string(),
|
||||||
|
"def snippet_2():\n print(\"This is snipptet 2\")\n".to_string(),
|
||||||
|
"def snippet_3():\n print(\"This is snipptet 3\")\n".to_string(),
|
||||||
|
"def snippet_4():\n print(\"This is snipptet 4\")\n".to_string(),
|
||||||
|
"def snippet_5():\n print(\"This is snipptet 5\")\n".to_string(),
|
||||||
|
];
|
||||||
|
|
||||||
|
let prefix = "def this_is_prefix():\n";
|
||||||
|
|
||||||
|
let expected_built_prefix = "\
|
||||||
|
# Below are some relevant python snippets found in the repository:
|
||||||
|
# == Snippet 1 ==
|
||||||
|
# def snippet_1():
|
||||||
|
# print(\"This is snipptet 1\")
|
||||||
|
# == Snippet 2 ==
|
||||||
|
# def snippet_2():
|
||||||
|
# print(\"This is snipptet 2\")
|
||||||
|
# == Snippet 3 ==
|
||||||
|
# def snippet_3():
|
||||||
|
# print(\"This is snipptet 3\")
|
||||||
|
# == Snippet 4 ==\n# def snippet_4():
|
||||||
|
# print(\"This is snipptet 4\")
|
||||||
|
# == Snippet 5 ==
|
||||||
|
# def snippet_5():
|
||||||
|
# print(\"This is snipptet 5\")
|
||||||
|
def this_is_prefix():\n";
|
||||||
|
|
||||||
|
assert_eq!(
|
||||||
|
build_prefix("python", prefix, snippets),
|
||||||
|
expected_built_prefix
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_build_prefix_count_chars() {
|
||||||
|
let snippets_expected = 4;
|
||||||
|
let snippet_payload = "a".repeat(MAX_SNIPPET_CHARS_IN_PROMPT / snippets_expected);
|
||||||
|
let mut snippets = vec![];
|
||||||
|
for _ in 0..snippets_expected {
|
||||||
|
snippets.push(snippet_payload.clone());
|
||||||
|
}
|
||||||
|
|
||||||
|
let prefix = "def this_is_prefix():\n";
|
||||||
|
|
||||||
|
let generated_prompt = build_prefix("python", prefix, snippets);
|
||||||
|
|
||||||
|
for i in 0..snippets_expected + 1 {
|
||||||
|
let st = format!("# == Snippet {} ==", i + 1);
|
||||||
|
if i < snippets_expected {
|
||||||
|
assert!(generated_prompt.contains(&st));
|
||||||
|
} else {
|
||||||
|
assert!(!generated_prompt.contains(&st));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue