Пример #1
0
def test_min_max():
    # An example generated function wrapper with possible options
    data = [4, 5, 6, None, 1]
    s = pc.min_max(data)
    assert s.as_py() == {'min': 1, 'max': 6}
    s = pc.min_max(data, options=pc.MinMaxOptions())
    assert s.as_py() == {'min': 1, 'max': 6}
    s = pc.min_max(data, options=pc.MinMaxOptions(null_handling='skip'))
    assert s.as_py() == {'min': 1, 'max': 6}
    s = pc.min_max(data, options=pc.MinMaxOptions(null_handling='emit_null'))
    assert s.as_py() == {'min': None, 'max': None}

    # Options as dict of kwargs
    s = pc.min_max(data, options={'null_handling': 'emit_null'})
    assert s.as_py() == {'min': None, 'max': None}
    # Options as named functions arguments
    s = pc.min_max(data, null_handling='emit_null')
    assert s.as_py() == {'min': None, 'max': None}

    # Both options and named arguments
    with pytest.raises(TypeError):
        s = pc.min_max(data,
                       options=pc.MinMaxOptions(),
                       null_handling='emit_null')

    # Wrong options type
    options = pc.TakeOptions()
    with pytest.raises(TypeError):
        s = pc.min_max(data, options=options)

    # Missing argument
    with pytest.raises(
            TypeError,
            match=r"min_max\(\) missing 1 required positional argument"):
        s = pc.min_max()
Пример #2
0
def test_min_max():
    # An example generated function wrapper with possible options
    data = [4, 5, 6, None, 1]
    s = pc.min_max(data)
    assert s.as_py() == {'min': 1, 'max': 6}
    s = pc.min_max(data, options=pc.ScalarAggregateOptions())
    assert s.as_py() == {'min': 1, 'max': 6}
    s = pc.min_max(data, options=pc.ScalarAggregateOptions(skip_nulls=True))
    assert s.as_py() == {'min': 1, 'max': 6}
    s = pc.min_max(data, options=pc.ScalarAggregateOptions(skip_nulls=False))
    assert s.as_py() == {'min': None, 'max': None}

    # Options as dict of kwargs
    s = pc.min_max(data, options={'skip_nulls': False})
    assert s.as_py() == {'min': None, 'max': None}
    # Options as named functions arguments
    s = pc.min_max(data, skip_nulls=False)
    assert s.as_py() == {'min': None, 'max': None}

    # Both options and named arguments
    with pytest.raises(TypeError):
        s = pc.min_max(data,
                       options=pc.ScalarAggregateOptions(),
                       skip_nulls=False)

    # Wrong options type
    options = pc.TakeOptions()
    with pytest.raises(TypeError):
        s = pc.min_max(data, options=options)

    # Missing argument
    with pytest.raises(
            TypeError,
            match=r"min_max\(\) missing 1 required positional argument"):
        s = pc.min_max()
Пример #3
0
def find_min_max_for_numeric_table_columns(
    table: pa.Table, ) -> Dict[str, dict]:
    """Determine per-vector min/max values and return as dictionary indexed by vector name"""
    ret_dict = {}
    for field in table.schema:
        if pa.types.is_floating(field.type):
            # pylint: disable=no-member
            minmax = pc.min_max(table[field.name])
            ret_dict[field.name] = {
                "min": minmax.get("min").as_py(),
                "max": minmax.get("max").as_py(),
            }

    return ret_dict
Пример #4
0
 def update(self, arr):
     self.mean = float(c.mean(arr).as_py())
     minmax = c.min_max(arr)
     self.min, self.max = float(minmax['min'].as_py()), float(
         minmax['max'].as_py())