'Sets up three dictionaries for use later:
`correct_choices`: These are the correct binary choices(radio/checkbox)
`correct_inputs`: These are the numerical/string answers for required
inputs.
`answer_values`: This is a dict, keyed by the name of the binary choice
which contains the correct answers for the text inputs separated by
commas e.g. "1, 0.5"
`correct_choices` and `correct_inputs` are used for grading the problem
and `answer_values` is used for displaying correct answers.'

def setup_response(self):

    _ = self.capa_system.i18n.ugettext
    context = self.context
    self.answer_values = {self.answer_id: []}
    self.assign_choice_names()
    correct_xml = self.xml.xpath('//*[@id=$id]//choice[@correct="true"]', id=self.xml.get('id'))
    for node in correct_xml:
        parent_name = node.get('name')
        self.correct_choices[parent_name] = {'answer': ''}
        self.answer_values[self.answer_id].append(parent_name)
        answer_list = []
        for child in node:
            answer = child.get('answer', None)
            if (not answer):
                raise LoncapaProblemError(_('Answer    not    provided    for    {input_type}').format(input_type='numtolerance_input'))
            answer = contextualize_text(answer, context)
            input_name = child.get('name')
            tolerance = contextualize_text(child.get('tolerance', default_tolerance), context)
            self.correct_inputs[input_name] = {'answer': answer, 'tolerance': tolerance}
            answer_list.append(answer)
        self.answer_values[parent_name] = ',    '.join(answer_list)
    self.correct_choices = set(self.correct_choices.keys())
