Updated script that can be controled by Nodejs web app
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
import numpy as np
|
||||
import pytest
|
||||
|
||||
import pandas as pd
|
||||
from pandas import (
|
||||
Index,
|
||||
MultiIndex,
|
||||
Series,
|
||||
)
|
||||
import pandas._testing as tm
|
||||
|
||||
|
||||
class TestIndexConstructor:
|
||||
# Tests for the Index constructor, specifically for cases that do
|
||||
# not return a subclass
|
||||
|
||||
@pytest.mark.parametrize("value", [1, np.int64(1)])
|
||||
def test_constructor_corner(self, value):
|
||||
# corner case
|
||||
msg = (
|
||||
r"Index\(\.\.\.\) must be called with a collection of some "
|
||||
f"kind, {value} was passed"
|
||||
)
|
||||
with pytest.raises(TypeError, match=msg):
|
||||
Index(value)
|
||||
|
||||
@pytest.mark.parametrize("index_vals", [[("A", 1), "B"], ["B", ("A", 1)]])
|
||||
def test_construction_list_mixed_tuples(self, index_vals):
|
||||
# see gh-10697: if we are constructing from a mixed list of tuples,
|
||||
# make sure that we are independent of the sorting order.
|
||||
index = Index(index_vals)
|
||||
assert isinstance(index, Index)
|
||||
assert not isinstance(index, MultiIndex)
|
||||
|
||||
def test_constructor_cast(self):
|
||||
msg = "could not convert string to float"
|
||||
with pytest.raises(ValueError, match=msg):
|
||||
Index(["a", "b", "c"], dtype=float)
|
||||
|
||||
@pytest.mark.parametrize("tuple_list", [[()], [(), ()]])
|
||||
def test_construct_empty_tuples(self, tuple_list):
|
||||
# GH #45608
|
||||
result = Index(tuple_list)
|
||||
expected = MultiIndex.from_tuples(tuple_list)
|
||||
|
||||
tm.assert_index_equal(result, expected)
|
||||
|
||||
def test_index_string_inference(self):
|
||||
# GH#54430
|
||||
pytest.importorskip("pyarrow")
|
||||
dtype = "string[pyarrow_numpy]"
|
||||
expected = Index(["a", "b"], dtype=dtype)
|
||||
with pd.option_context("future.infer_string", True):
|
||||
ser = Index(["a", "b"])
|
||||
tm.assert_index_equal(ser, expected)
|
||||
|
||||
expected = Index(["a", 1], dtype="object")
|
||||
with pd.option_context("future.infer_string", True):
|
||||
ser = Index(["a", 1])
|
||||
tm.assert_index_equal(ser, expected)
|
||||
|
||||
def test_inference_on_pandas_objects(self):
|
||||
# GH#56012
|
||||
idx = Index([pd.Timestamp("2019-12-31")], dtype=object)
|
||||
with tm.assert_produces_warning(FutureWarning, match="Dtype inference"):
|
||||
result = Index(idx)
|
||||
assert result.dtype != np.object_
|
||||
|
||||
ser = Series([pd.Timestamp("2019-12-31")], dtype=object)
|
||||
|
||||
with tm.assert_produces_warning(FutureWarning, match="Dtype inference"):
|
||||
result = Index(ser)
|
||||
assert result.dtype != np.object_
|
||||
|
||||
def test_constructor_not_read_only(self):
|
||||
# GH#57130
|
||||
ser = Series([1, 2], dtype=object)
|
||||
with pd.option_context("mode.copy_on_write", True):
|
||||
idx = Index(ser)
|
||||
assert idx._values.flags.writeable
|
||||
Reference in New Issue
Block a user