def test_concatenate_blocks(): v1 = si_unit_pandas.TemperatureArray([1, 2, 3]) s = pandas.Series(v1, index=pandas.RangeIndex(3), fastpath=True) result = pandas.concat([s, s], ignore_index=True) expected = pandas.Series( si_unit_pandas.TemperatureArray([1, 2, 3, 1, 2, 3])) tm.assert_series_equal(result, expected)
def test_ops(tup): a, b = tup v1 = si_unit_pandas.TemperatureArray(a) v2 = si_unit_pandas.TemperatureArray(b) r1 = v1 <= v2 r2 = v2 >= v1 assert_numpy_array_equal(r1, r2)
def test_factorize(): arr = si_unit_pandas.TemperatureArray([1, 1, 10, 10]) labels, uniques = pandas.factorize(arr) expected_labels = numpy.array([0, 0, 1, 1]) assert_numpy_array_equal(labels, expected_labels) expected_uniques = si_unit_pandas.TemperatureArray([1, 10]) assert uniques.equals(expected_uniques)
def test_reindex(frame): result = frame.reindex([0, 10]) expected = pandas.DataFrame({ 'A': si_unit_pandas.TemperatureArray([0, numpy.nan]), 'B': [0, numpy.nan], 'C': si_unit_pandas.TemperatureArray([0, numpy.nan]) }, index=[0, 10]) tm.assert_frame_equal(result, expected)
def test_dropna(): missing = pandas.Series(si_unit_pandas.TemperatureArray([1, numpy.nan])) result = missing.dropna() expected = pandas.Series(si_unit_pandas.TemperatureArray([1])) tm.assert_series_equal(result, expected) result = missing.to_frame().dropna() expected = expected.to_frame() tm.assert_frame_equal(result, expected)
def test_dataframe_from_series_no_dict(): s = pandas.Series(si_unit_pandas.TemperatureArray([1, 2, 3])) result = pandas.DataFrame(s) expected = pandas.DataFrame({0: s}) tm.assert_frame_equal(result, expected) s = pandas.Series(si_unit_pandas.TemperatureArray([1, 2, 3]), name='A') result = pandas.DataFrame(s) expected = pandas.DataFrame({'A': s}) tm.assert_frame_equal(result, expected)
def test_comparison_raises(op): arr = si_unit_pandas.TemperatureArray([0, 1, 2]) with pytest.raises(TypeError): op(arr, 'a') with pytest.raises(TypeError): op('a', arr)
def test_repr_works(): values = si_unit_pandas.TemperatureArray([0, 1, 2, 3, 2**32, 2**64 + 1]) result = repr(values) expected = ( 'TemperatureArray([0.0\u205f℃, 1.0\u205f℃, 2.0\u205f℃, 3.0\u205f℃, ' '4294967296.0\u205f℃, 1.8446744073709552e+19\u205f℃])') assert result == expected
def test_output(file_regression: FileRegressionFixture): s = pandas.Series(si_unit_pandas.TemperatureArray([1, 2, 3])) result = pandas.DataFrame(s) expected = pandas.DataFrame({0: s}) assert_frame_equal(result, expected) check_file_regression(str(expected), file_regression)
def test_unique(): arr = si_unit_pandas.TemperatureArray([3, 3, 1, 2, 3]) result = arr.unique() assert isinstance(result, si_unit_pandas.TemperatureArray) result = result.astype(object) expected = pandas.unique(arr.astype(object)) assert_numpy_array_equal(result, expected)
def test_isna(): v = si_unit_pandas.TemperatureArray([0, 2, 2**64, 2**64 + 1, 2**64 + 2]) r1 = v.isna() r2 = pandas.isna(v) expected = numpy.array([False, False, False, False, False]) numpy.testing.assert_array_equal(r1, expected) numpy.testing.assert_array_equal(r2, expected)
def test_iter_works(): x = si_unit_pandas.TemperatureArray([0, 1, 2]) result = list(x) expected = [ Celsius(0), Celsius(1), Celsius(2), ] assert result == expected
def test_array(): v = si_unit_pandas.TemperatureArray([1, 2, 3]) result = numpy.array(v) expected = numpy.array([ Celsius(1), Celsius(2), Celsius(3), ]) assert_numpy_array_equal(result, expected)
def test_factorize(): arr = si_unit_pandas.TemperatureArray([3, 3, 1, 2, 3]) labels, uniques = arr.factorize() expected_labels, expected_uniques = pandas.factorize(arr.astype(object)) assert isinstance(uniques, si_unit_pandas.TemperatureArray) uniques = uniques.astype(object) assert_numpy_array_equal(labels, expected_labels) assert_numpy_array_equal(uniques, expected_uniques)
def test_groupby_make_grouper(): df = pandas.DataFrame({ 'A': [1, 1, 2, 2], 'B': si_unit_pandas.TemperatureArray([1, 1, 2, 2]) }) print(df) print(df.to_string()) gr = df.groupby('B') result = gr.grouper.groupings[0].grouper print(result) print(df.B.values) assert result.equals(df.B.values)
def test_groupby_make_grouper_groupings(): df = pandas.DataFrame({ 'A': [1, 1, 2, 2], 'B': si_unit_pandas.TemperatureArray([1, 1, 2, 2]) }) p1 = df.groupby('A').grouper.groupings[0] p2 = df.groupby('B').grouper.groupings[0] result = {int(k): v for k, v in p2.groups.items()} assert result.keys() == p1.groups.keys() for k in result.keys(): assert result[k].equals(p1.groups[k])
def frame(): return pandas.DataFrame({ 'A': si_unit_pandas.TemperatureArray([0, 1, 2]), 'B': [0, 1, 2], 'C': si_unit_pandas.TemperatureArray([0, 1, 2]) })
def test_make_container(): values = si_unit_pandas.TemperatureArray([1, 2, 3]) npt.assert_array_equal( values.data, numpy.array([1, 2, 3], dtype=values.dtype._record_type))
def test_from_ndarray(values): result = si_unit_pandas.TemperatureArray(numpy.asarray(values)) expected = si_unit_pandas.TemperatureArray(values) assert result.equals(expected)
def test_series_constructor(): v = si_unit_pandas.TemperatureArray([1, 2, 3]) result = pandas.Series(v) assert result.dtype == v.dtype assert isinstance(result._data.blocks[0], ExtensionBlock)
def test_setitem_array(): ser = si_unit_pandas.TemperatureArray([0, 1, 2]) ser[[1, 2]] = [10, 20] expected = si_unit_pandas.TemperatureArray([0, 10, 20]) assert ser.equals(expected)
def test_setitem_scalar(value): ser = si_unit_pandas.TemperatureArray([0, 1, 2]) ser[1] = Celsius(value) expected = si_unit_pandas.TemperatureArray([0, 10, 2]) assert ser.equals(expected)
def test_getitem_slice(): ser = si_unit_pandas.TemperatureArray([0, 1, 2]) result = ser[1:] expected = si_unit_pandas.TemperatureArray([1, 2]) assert result.equals(expected)
def test_getitem_scalar(): ser = si_unit_pandas.TemperatureArray([0, 1, 2]) result = ser[1] assert result == Celsius(1)
def test_dataframe_constructor(): v = si_unit_pandas.TemperatureArray([1, 2, 3]) df = pandas.DataFrame({'A': v}) assert isinstance(df.dtypes['A'], si_unit_pandas.CelsiusType) assert df.shape == (3, 1) str(df)
def test_dataframe_from_series(): s = pandas.Series(si_unit_pandas.TemperatureArray([0, 1, 2])) c = pandas.Series(pandas.Categorical(['a', 'b'])) result = pandas.DataFrame({'A': s, 'B': c}) assert isinstance(result.dtypes['A'], si_unit_pandas.CelsiusType)
def test_getitem_slice(): ser = pandas.Series(si_unit_pandas.TemperatureArray([0, 1, 2])) result = ser[1:] expected = pandas.Series(si_unit_pandas.TemperatureArray([1, 2]), index=range(1, 3)) tm.assert_series_equal(result, expected)
def test_setitem_scalar(): ser = pandas.Series(si_unit_pandas.TemperatureArray([0, 1, 2])) ser[1] = Celsius(10) expected = pandas.Series(si_unit_pandas.TemperatureArray([0, 10, 2])) tm.assert_series_equal(ser, expected)
def test_tolist(): v = si_unit_pandas.TemperatureArray([1, 2, 3]) result = v.tolist() expected = [1.0, 2.0, 3.0] assert result == expected
def test_topyints(): values = [0, 1, 2**32] arr = si_unit_pandas.TemperatureArray(values) result = [int(x) for x in arr] assert result == values