12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- import numpy as np
- import pytest
- import pandas as pd
- import pandas._testing as tm
- from pandas.core.indexes.api import Index, MultiIndex
- indices_dict = {
- "unicode": tm.makeUnicodeIndex(100),
- "string": tm.makeStringIndex(100),
- "datetime": tm.makeDateIndex(100),
- "period": tm.makePeriodIndex(100),
- "timedelta": tm.makeTimedeltaIndex(100),
- "int": tm.makeIntIndex(100),
- "uint": tm.makeUIntIndex(100),
- "range": tm.makeRangeIndex(100),
- "float": tm.makeFloatIndex(100),
- "bool": Index([True, False]),
- "categorical": tm.makeCategoricalIndex(100),
- "interval": tm.makeIntervalIndex(100),
- "empty": Index([]),
- "tuples": MultiIndex.from_tuples(zip(["foo", "bar", "baz"], [1, 2, 3])),
- "repeats": Index([0, 0, 1, 1, 2, 2]),
- }
- @pytest.fixture(params=indices_dict.keys())
- def indices(request):
- # copy to avoid mutation, e.g. setting .name
- return indices_dict[request.param].copy()
- @pytest.fixture(params=[1, np.array(1, dtype=np.int64)])
- def one(request):
- # zero-dim integer array behaves like an integer
- return request.param
- zeros = [
- box([0] * 5, dtype=dtype)
- for box in [pd.Index, np.array]
- for dtype in [np.int64, np.uint64, np.float64]
- ]
- zeros.extend([np.array(0, dtype=dtype) for dtype in [np.int64, np.uint64, np.float64]])
- zeros.extend([0, 0.0])
- @pytest.fixture(params=zeros)
- def zero(request):
- # For testing division by (or of) zero for Index with length 5, this
- # gives several scalar-zeros and length-5 vector-zeros
- return request.param
|