Beispiel #1
0
    def test_errors(self):
        with self.assertRaises(ValueError) as cm:
            main._parse_op_args(['=9'])
        self.assertEqual(str(cm.exception), "missing input name")

        with self.assertRaises(ValueError) as cm:
            main._parse_op_args(['8=9'])
        self.assertEqual(str(cm.exception), '"8" is not a valid input name')

        with self.assertRaises(ValueError) as cm:
            main._parse_op_args(['thres="x"'],
                                input_props=dict(thres=dict(data_type=float)))
        self.assertEqual(
            str(cm.exception),
            "value <\"x\"> for input 'thres' is not compatible with type float"
        )

        with self.assertRaises(ValueError) as cm:
            main._parse_op_args(
                ['thres="x"'],
                input_props=dict(thres=dict(data_type=PointLike)))
        self.assertEqual(
            str(cm.exception),
            "value <\"x\"> for input 'thres' is not compatible with type PointLike"
        )
Beispiel #2
0
 def test_existing_method(self):
     op = OP_REGISTRY.get_op('cate.ops.timeseries.tseries_point', True)
     op_args, op_kwargs = main._parse_op_args(['ds=@ds', 'point=12.2,54.3', 'var=temperature', 'method=bfill'],
                                              input_props=op.op_meta_info.inputs)
     self.assertEqual(op_args, [])
     self.assertEqual(op_kwargs, OrderedDict([('ds', dict(source='ds')),
                                              ('point', dict(value=(12.2, 54.3))),
                                              ('var', dict(value='temperature')),
                                              ('method', dict(value='bfill'))]))
Beispiel #3
0
 def test_existing_method(self):
     op = OP_REGISTRY.get_op('cate.ops.timeseries.tseries_point', True)
     op_args, op_kwargs = main._parse_op_args(['ds=@ds', 'point=12.2,54.3', 'var=temperature', 'method=bfill'],
                                              input_props=op.op_meta_info.inputs)
     self.assertEqual(op_args, [])
     self.assertEqual(op_kwargs, OrderedDict([('ds', dict(source='ds')),
                                              ('point', dict(value=(12.2, 54.3))),
                                              ('var', dict(value='temperature')),
                                              ('method', dict(value='bfill'))]))
Beispiel #4
0
    def test_errors(self):
        with self.assertRaises(ValueError) as cm:
            main._parse_op_args(['=9'])
        self.assertEqual(str(cm.exception), "missing input name")

        with self.assertRaises(ValueError) as cm:
            main._parse_op_args(['8=9'])
        self.assertEqual(str(cm.exception), '"8" is not a valid input name')

        with self.assertRaises(ValueError) as cm:
            main._parse_op_args(['thres="x"'], input_props=dict(thres=dict(data_type=float)))
        self.assertEqual(str(cm.exception), "value <\"x\"> for input 'thres' is not compatible with type float")

        with self.assertRaises(ValueError) as cm:
            main._parse_op_args(['thres="x"'], input_props=dict(thres=dict(data_type=PointLike)))
        self.assertEqual(str(cm.exception), "value <\"x\"> for input 'thres' is not compatible with type PointLike")
Beispiel #5
0
    def test_with_namespace(self):
        class Dataset:
            pass

        ds = Dataset()
        ds.sst = 237.8

        import math as m
        namespace = dict(ds=ds, m=m)

        self.assertEqual(main._parse_op_args(['ds', 'm.pi', 'b=ds.sst + 0.2', 'u=m.cos(m.pi)'], namespace=namespace),
                         ([dict(value=ds),
                           dict(value=m.pi)],
                          OrderedDict([('b', dict(value=238.0)),
                                       ('u', dict(value=m.cos(m.pi)))])))
Beispiel #6
0
    def test_with_namespace(self):
        class Dataset:
            pass

        ds = Dataset()
        ds.sst = 237.8

        import math as m
        namespace = dict(ds=ds, m=m)

        self.assertEqual(main._parse_op_args(['ds', 'm.pi', 'b=ds.sst + 0.2', 'u=m.cos(m.pi)'], namespace=namespace),
                         ([dict(value=ds),
                           dict(value=m.pi)],
                          OrderedDict([('b', dict(value=238.0)),
                                       ('u', dict(value=m.cos(m.pi)))])))
Beispiel #7
0
    def test_with_input_props(self):
        class Dataset:
            pass

        ds = Dataset()
        ds.sst = 237.8

        input_props = dict(a=dict(data_type=PointLike),
                           b=dict(data_type=TimeRangeLike),
                           c=dict(data_type=int))

        self.assertEqual(
            main._parse_op_args([
                'a = 11.3, 52.9', 'b = 2001-01-01, 2004-05-06', 'c=8.3',
                'd="Bibo"', 'e=ds.sst'
            ],
                                input_props=input_props,
                                namespace=dict(ds=ds)),
            ([],
             OrderedDict([('a', dict(value=(11.3, 52.9))),
                          ('b', dict(value='2001-01-01, 2004-05-06')),
                          ('c', dict(value=8.3)), ('d', dict(value='Bibo')),
                          ('e', dict(value=237.8))])))
Beispiel #8
0
    def test_with_input_props(self):
        class Dataset:
            pass

        ds = Dataset()
        ds.sst = 237.8

        input_props = dict(a=dict(data_type=PointLike),
                           b=dict(data_type=TimeRangeLike),
                           c=dict(data_type=int))

        self.assertEqual(main._parse_op_args(['a = 11.3, 52.9',
                                              'b = 2001-01-01, 2004-05-06',
                                              'c=8.3',
                                              'd="Bibo"',
                                              'e=ds.sst'],
                                             input_props=input_props,
                                             namespace=dict(ds=ds)),
                         ([], OrderedDict([('a', dict(value=(11.3, 52.9))),
                                           ('b', dict(value='2001-01-01, 2004-05-06')),
                                           ('c', dict(value=8.3)),
                                           ('d', dict(value='Bibo')),
                                           ('e', dict(value=237.8))]))
                         )
Beispiel #9
0
 def test_no_namespace(self):
     self.assertEqual(main._parse_op_args([]), ([], OrderedDict()))
     self.assertEqual(main._parse_op_args(['']),
                      ([dict(value=None)], OrderedDict()))
     self.assertEqual(main._parse_op_args(['a=@b']),
                      ([], OrderedDict(a=dict(source='b'))))
     self.assertEqual(main._parse_op_args(['[email protected]']),
                      ([], OrderedDict(a=dict(source='b.x'))))
     self.assertEqual(main._parse_op_args(['a=b']),
                      ([], OrderedDict(a=dict(value='b'))))
     self.assertEqual(main._parse_op_args(['a="b"']),
                      ([], OrderedDict(a=dict(value='b'))))
     self.assertEqual(main._parse_op_args(['a="C:\\\\Users"']),
                      ([], OrderedDict(a=dict(value='C:\\Users'))))
     self.assertEqual(
         main._parse_op_args(['a=2', 'b=']),
         ([], OrderedDict([('a', dict(value=2)), ('b', dict(value=None))])))
     self.assertEqual(main._parse_op_args(['a="c"']),
                      ([], OrderedDict(a=dict(value='c'))))
     self.assertEqual(main._parse_op_args(['a=True']),
                      ([], OrderedDict(a=dict(value=True))))
     self.assertEqual(main._parse_op_args(['z=4.6', 'y=1', 'x=2.+6j']),
                      ([],
                       OrderedDict([('z', dict(value=4.6)),
                                    ('y', dict(value=1)),
                                    ('x', dict(value=(2 + 6j)))])))
Beispiel #10
0
 def test_no_namespace(self):
     self.assertEqual(main._parse_op_args([]), ([], OrderedDict()))
     self.assertEqual(main._parse_op_args(['']), ([dict(value=None)], OrderedDict()))
     self.assertEqual(main._parse_op_args(['a=@b']), ([], OrderedDict(a=dict(source='b'))))
     self.assertEqual(main._parse_op_args(['[email protected]']), ([], OrderedDict(a=dict(source='b.x'))))
     self.assertEqual(main._parse_op_args(['a=b']), ([], OrderedDict(a=dict(value='b'))))
     self.assertEqual(main._parse_op_args(['a="b"']), ([], OrderedDict(a=dict(value='b'))))
     self.assertEqual(main._parse_op_args(['a="C:\\\\Users"']), ([], OrderedDict(a=dict(value='C:\\Users'))))
     self.assertEqual(main._parse_op_args(['a=2', 'b=']), ([], OrderedDict([('a', dict(value=2)),
                                                                            ('b', dict(value=None))])))
     self.assertEqual(main._parse_op_args(['a="c"']), ([], OrderedDict(a=dict(value='c'))))
     self.assertEqual(main._parse_op_args(['a=True']), ([], OrderedDict(a=dict(value=True))))
     self.assertEqual(main._parse_op_args(['z=4.6', 'y=1', 'x=2.+6j']), ([], OrderedDict([('z', dict(value=4.6)),
                                                                                          ('y', dict(value=1)),
                                                                                          ('x',
                                                                                           dict(value=(2 + 6j)))])))