Ejemplo n.º 1
0
def test_ds2_variables_dict_input():
    target = [
        DS2Variable(name='x1', type='double', out=False),
        DS2Variable(name='x2', type='double', out=False)
    ]

    # Standard input
    result = ds2_variables(
        OrderedDict([('x1', ('double', False)), ('x2', ('double', False))]))
    assert result == target

    # No return value flag
    result = ds2_variables(OrderedDict([('x1', 'double'), ('x2', 'double')]))
    assert result == target

    assert [
        DS2Variable('a', 'int', False),
        DS2Variable('b', 'char', False),
        DS2Variable('c', 'double', False)
    ] == ds2_variables(OrderedDict([('a', int), ('b', str), ('c', float)]))

    assert [DS2Variable('x', 'str', True)] == ds2_variables(OrderedDict(x=str),
                                                            output_vars=True)

    assert [
        DS2Variable('a', 'int', False),
        DS2Variable('b', 'char', False),
        DS2Variable('x', 'double', True)
    ] == ds2_variables(
        OrderedDict([('a', int), ('b', str), ('x', (float, True))]))
Ejemplo n.º 2
0
def test_ds2_variables_numpy_input():
    np = pytest.importorskip('numpy')


    assert [DS2Variable('var1', 'int', False),
            DS2Variable('var2', 'int', False),
            DS2Variable('var3', 'int', False)] == ds2_variables(np.array([1, 2, 3]))

    assert [DS2Variable('var1', 'double', False),
            DS2Variable('var2', 'double', False)] == ds2_variables(np.array([1., 2.]))
Ejemplo n.º 3
0
def test_ds2_variables_func_input():
    target = [DS2Variable(name='x1', type='double', out=False),
              DS2Variable(name='x2', type='double', out=False)]

    # Only function as input
    with mock.patch('sasctl.utils.pymas.python.parse_type_hints') as mocked:
        mocked.return_value = OrderedDict([('x1', ('double', False)), ('x2', ('double', False))])
        result = ds2_variables(lambda x: x)     # Input function doesn't matter since response is mocked
        assert 1 == mocked.call_count
    assert result == target
Ejemplo n.º 4
0
def test_ds2_variables_pandas_input():
    pd = pytest.importorskip('pandas')

    target = [DS2Variable('a', 'int', False),
              DS2Variable('b', 'char', False),
              DS2Variable('c', 'double', False)]

    df = pd.DataFrame(dict(a=[1,2,3], b=['1', '2', '3'], c=[1., 2., 3.]))
    df = df[['a', 'b', 'c']]    # Ensure columns are ordered correctly

    assert target == ds2_variables(df)