Ejemplo n.º 1
0
    def test_simple_graph(self):
        methods = [self.plugin.actions['no_input_method']]
        self.g = build_graph(methods)
        obs = list(self.g.nodes)

        exp_node = str({
            'inputs': {},
            'outputs': {
                'out': Mapping
            },
        })

        type_node = Mapping
        exp = [type_node, exp_node]
        for item in obs:
            assert item in exp

        assert self.g.has_edge(str(exp_node), type_node)
Ejemplo n.º 2
0
    def test_cycle_in_graph_no_params(self):
        methods = [self.plugin.actions['docstring_order_method']]
        self.g = build_graph(methods)
        obs = list(self.g.nodes)
        exp = [Mapping, Str]

        exp_node = str({
            'inputs': {
                'req_input': Mapping,
                'req_param': Str,
            },
            'outputs': {
                'out': Mapping
            },
        })

        exp += [exp_node]
        for item in obs:
            assert item in exp

        assert self.g.in_degree(exp_node) == 2
        assert self.g.out_degree(exp_node) == 1
Ejemplo n.º 3
0
    def test_metadata(self):
        actions = [self.plugin.actions['identity_with_metadata']]
        self.g = build_graph(actions)
        obs = list(self.g.nodes)
        exp = [Metadata, IntSequence1, IntSequence2]

        exp_node_1 = str({
            'inputs': {
                'ints': IntSequence1,
                'metadata': Metadata
            },
            'outputs': {
                'out': IntSequence1
            },
        })

        exp_node_2 = str({
            'inputs': {
                'ints': IntSequence2,
                'metadata': Metadata
            },
            'outputs': {
                'out': IntSequence1
            },
        })

        exp += [exp_node_1, exp_node_2]

        for item in obs:
            assert item in exp

        assert self.g.in_degree(exp_node_1) == 2
        assert self.g.out_degree(exp_node_1) == 1

        assert self.g.in_degree(exp_node_1) == 2
        assert self.g.out_degree(exp_node_1) == 1

        assert self.g.in_degree(IntSequence1) == 2
        assert self.g.out_degree(IntSequence1) == 1
Ejemplo n.º 4
0
    def test_multiple_outputs(self):
        actions = [self.plugin.actions['visualizer_only_pipeline']]
        self.g = build_graph(actions)
        obs = list(self.g.nodes)
        exp = [Visualization, Mapping]

        exp_node = str({
            'inputs': {
                'mapping': Mapping
            },
            'outputs': {
                'viz1': Visualization,
                'viz2': Visualization
            },
        })

        exp += [exp_node]

        for item in obs:
            assert item in exp

        assert self.g.in_degree(exp_node) == 1
        assert self.g.out_degree(exp_node) == 1
Ejemplo n.º 5
0
    def test_union(self):
        vis = [self.plugin.actions['most_common_viz']]
        self.g = build_graph(vis)
        obs = list(self.g.nodes)
        exp = [Visualization, IntSequence1, IntSequence2]

        exp_node_1 = str({
            'inputs': {
                'ints': IntSequence1,
            },
            'outputs': {
                'visualization': Visualization
            },
        })
        exp_node_2 = str({
            'inputs': {
                'ints': IntSequence2,
            },
            'outputs': {
                'visualization': Visualization
            },
        })

        exp += [exp_node_1, exp_node_2]

        for item in obs:
            assert item in exp

        assert self.g.in_degree(exp_node_1) == 1
        assert self.g.out_degree(exp_node_1) == 1

        assert self.g.in_degree(exp_node_2) == 1
        assert self.g.out_degree(exp_node_2) == 1

        assert self.g.in_degree(Visualization) == 2
        assert self.g.out_degree(Visualization) == 0