Beispiel #1
0
    def summarize(self) -> Dict[int, ProcessSummary]:
        summary_by_process_id = dict()  # type: Dict[int, ProcessSummary]
        for process_id in self.locations.keys():
            locations = self.locations[process_id]
            actions = self.actions[process_id]

            p = Process(process_id=process_id,
                        locations=locations,
                        actions=actions,
                        num_steps=self.num_sentences[process_id])

            summary_by_process_id[p.process_id] = ProcessSummary(
                process_id=p.process_id,
                inputs=p.inputs(),
                outputs=p.outputs(),
                conversions=p.conversions(),
                moves=p.moves(),
            )

        return summary_by_process_id
Beispiel #2
0
    def test_qa(self):
        p = Process(
            process_id=514,
            locations=OrderedDict([('glacier', [
                NO_LOC, NO_LOC, NO_LOC, NO_LOC, NO_LOC, NO_LOC, 'area', 'area'
            ]),
                                   ('snow', [
                                       'area', 'area', 'area', 'area', NO_LOC,
                                       NO_LOC, NO_LOC, NO_LOC
                                   ]),
                                   ('mass', [
                                       NO_LOC, NO_LOC, NO_LOC, NO_LOC, NO_LOC,
                                       'area', 'area', 'area'
                                   ])]),
            actions=OrderedDict([
                ('glacier',
                 [NO_ACT, NO_ACT, NO_ACT, NO_ACT, NO_ACT, CREATE, NO_ACT]),
                ('snow',
                 [NO_ACT, NO_ACT, NO_ACT, DESTROY, NO_ACT, NO_ACT, NO_ACT]),
                ('mass',
                 [NO_ACT, NO_ACT, NO_ACT, NO_ACT, CREATE, NO_ACT, NO_ACT])
            ]),
            num_steps=7,
        )
        self.assertEquals(p.inputs(), [Input(participants='snow')])
        self.assertEquals(
            p.outputs(),
            [Output(participants='glacier'),
             Output(participants='mass')])
        self.assertEquals(p.conversions(), [
            Conversion(destroyed='snow',
                       created='mass',
                       locations='area',
                       step_id='4')
        ])
        self.assertEquals(p.moves(), [])

        p = Process(
            process_id=540,
            locations=OrderedDict([('air', [
                'unk', 'unk', 'unk', 'bronchiole', 'alveolus', 'unk', 'unk',
                'unk', 'unk', 'unk', 'unk'
            ]),
                                   ('oxygen', [
                                       'unk', 'unk', 'unk', 'unk', 'unk',
                                       'bloodstream', 'unk', 'unk', 'unk',
                                       'unk', 'unk'
                                   ]),
                                   ('carbon dioxide', [
                                       'unk', 'unk', 'unk', 'unk', 'unk',
                                       'bloodstream', 'bloodstream',
                                       'alveolus', 'bronchiole', 'lung', 'body'
                                   ])]),
            actions=OrderedDict([('air', [
                NO_ACT, NO_ACT, MOVE, MOVE, MOVE, NO_ACT, NO_ACT, NO_ACT,
                NO_ACT, NO_ACT
            ]),
                                 ('oxygen', [
                                     NO_ACT, NO_ACT, NO_ACT, NO_ACT, MOVE,
                                     MOVE, NO_ACT, NO_ACT, NO_ACT, NO_ACT
                                 ]),
                                 ('carbon dioxide', [
                                     NO_ACT, NO_ACT, NO_ACT, NO_ACT, MOVE,
                                     NO_ACT, MOVE, MOVE, MOVE, MOVE
                                 ])]),
            num_steps=10,
        )
        self.assertEquals(p.inputs(), [])
        self.assertEquals(p.outputs(), [])
        self.assertEquals(p.conversions(), [])
        self.assertEquals(p.moves(), [
            Move(participants='air',
                 location_before='unk',
                 location_after='bronchiole',
                 step_id='3'),
            Move(participants='air',
                 location_before='bronchiole',
                 location_after='alveolus',
                 step_id='4'),
            Move(participants='air',
                 location_before='alveolus',
                 location_after='unk',
                 step_id='5'),
            Move(participants='oxygen',
                 location_before='unk',
                 location_after='bloodstream',
                 step_id='5'),
            Move(participants='oxygen',
                 location_before='bloodstream',
                 location_after='unk',
                 step_id='6'),
            Move(participants='carbon dioxide',
                 location_before='unk',
                 location_after='bloodstream',
                 step_id='5'),
            Move(participants='carbon dioxide',
                 location_before='bloodstream',
                 location_after='alveolus',
                 step_id='7'),
            Move(participants='carbon dioxide',
                 location_before='alveolus',
                 location_after='bronchiole',
                 step_id='8'),
            Move(participants='carbon dioxide',
                 location_before='bronchiole',
                 location_after='lung',
                 step_id='9'),
            Move(participants='carbon dioxide',
                 location_before='lung',
                 location_after='body',
                 step_id='10'),
        ])