async function generateTest (
language=getRandomElementFromArray(languages),
snippetType = getRandomElementFromArray(snippetTypes),
updateIsPartial = getRandomElementFromArray([true, false])
) {
const problemDescription = await describeProblem(language, snippetType)
const initialCode = await generateInitialCode(language, snippetType, problemDescription)
const delimiter = await getDelimiter(initialCode, snippetType, language)
const snippetDescription = await describeSnippet(initialCode, snippetType)
const codeWithSnippetDelimited = await getCodeWithSnippetDelimited(delimiter, initialCode, snippetType, snippetDescription)
const updateDescription = await getUpdateDescription(problemDescription, initialCode, updateIsPartial)
const updatedCodeWithSnippetDelimited = await getUpdatedCodeWithSnippetDelimited(updateDescription, updateIsPartial, delimiter, snippetType, snippetDescription, codeWithSnippetDelimited)
return ({
language,
snippetType,
updateIsPartial,
delimiter,
codeWithSnippetDelimited,
updateDescription,
updatedCodeWithSnippetDelimited,
problemDescription,
snippetDescription,
updateDescription
})
}