MCPcopy
hub / github.com/pandas-dev/pandas / test_utf8_writer

Method test_utf8_writer

pandas/tests/io/test_stata.py:2002–2049  ·  view source on GitHub ↗
(self, version, byteorder, temp_file)

Source from the content-addressed store, hash-verified

2000 @pytest.mark.parametrize("version", [118, 119, None])
2001 @pytest.mark.parametrize("byteorder", ["little", "big"])
2002 def test_utf8_writer(self, version, byteorder, temp_file):
2003 cat = pd.Categorical(["a", "β", "ĉ"], ordered=True)
2004 data = DataFrame(
2005 [
2006 [1.0, 1, "ᴬ", "ᴀ relatively long ŝtring"],
2007 [2.0, 2, "ᴮ", ""],
2008 [3.0, 3, "ᴰ", None],
2009 ],
2010 columns=["Å", "β", "ĉ", "strls"],
2011 )
2012 data["ᴐᴬᵀ"] = cat
2013 variable_labels = {
2014 "Å": "apple",
2015 "β": "ᵈᵉᵊ",
2016 "ĉ": "ᴎტჄႲႳႴႶႺ",
2017 "strls": "Long Strings",
2018 "ᴐᴬᵀ": "",
2019 }
2020 data_label = "ᴅaᵀa-label"
2021 value_labels = {"β": {1: "label", 2: "æøå", 3: "ŋot valid latin-1"}}
2022 data["β"] = data["β"].astype(np.int32)
2023 writer = StataWriterUTF8(
2024 temp_file,
2025 data,
2026 data_label=data_label,
2027 convert_strl=["strls"],
2028 variable_labels=variable_labels,
2029 write_index=False,
2030 byteorder=byteorder,
2031 version=version,
2032 value_labels=value_labels,
2033 )
2034 writer.write_file()
2035 reread_encoded = read_stata(temp_file)
2036 # Missing is intentionally converted to empty strl
2037 data["strls"] = data["strls"].fillna("")
2038 # Variable with value labels is reread as categorical
2039 data["β"] = (
2040 data["β"].replace(value_labels["β"]).astype("category").cat.as_ordered()
2041 )
2042 tm.assert_frame_equal(data, reread_encoded)
2043 with StataReader(temp_file) as reader:
2044 assert reader.data_label == data_label
2045 assert reader.variable_labels() == variable_labels
2046
2047 data.to_stata(temp_file, version=version, write_index=False)
2048 reread_to_stata = read_stata(temp_file)
2049 tm.assert_frame_equal(data, reread_to_stata)
2050
2051 def test_writer_118_exceptions(self, temp_file):
2052 df = DataFrame(np.zeros((1, 33000), dtype=np.int8))

Callers

nothing calls this directly

Calls 11

to_stataMethod · 0.95
DataFrameClass · 0.90
StataWriterUTF8Class · 0.90
read_stataFunction · 0.90
StataReaderClass · 0.90
write_fileMethod · 0.80
as_orderedMethod · 0.80
variable_labelsMethod · 0.80
astypeMethod · 0.45
fillnaMethod · 0.45
replaceMethod · 0.45

Tested by

no test coverage detected