arkouda.testing¶
Functions¶
|
Check that the left and right objects are approximately equal. |
|
Check that the left and right objects are approximately equal. |
|
Check that 'ak.pdarray' or 'ak.Strings', 'ak.Categorical', or 'ak.SegArray' is equivalent. |
|
Check that 'np.array', 'pd.Categorical', 'ak.pdarray', 'ak.Strings', |
|
Check that the two 'ak.pdarray's are equivalent. |
|
Check that the two 'ak.segarray's are equivalent. |
|
Check that 'ak.Strings' is equivalent. |
|
Check attributes are equal. Both objects must have attribute. |
|
Test that Categoricals are equivalent. |
|
Checks classes are equal. |
|
Assert that a dictionary contains all the elements of an iterable. |
|
Checks that the elements are equal, but not the same object. |
|
Assert that two dictionaries are equal. |
|
Wrapper for tm.assert_*_equal to dispatch to the appropriate test function. |
|
Wrapper for tm.assert_*_equivalent to dispatch to the appropriate test function. |
|
Check that left and right DataFrame are equal. |
|
Check that left and right DataFrame are equal. |
|
Check that left and right Index are equal. |
|
Check that left and right Index are equal. |
|
Assert that the sequence is sorted. |
|
Check that left and right Series are equal. |
|
Check that left and right Series are equal. |
Package Contents¶
- arkouda.testing.assert_almost_equal(left, right, rtol: float = 1e-05, atol: float = 1e-08, **kwargs) None [source]¶
Check that the left and right objects are approximately equal.
By approximately equal, we refer to objects that are numbers or that contain numbers which may be equivalent to specific levels of precision.
- Parameters:
left (object)
right (object)
rtol (float, default 1e-5) – Relative tolerance.
atol (float, default 1e-8) – Absolute tolerance.
Warning
This function cannot be used on pdarray of size > ak.client.maxTransferBytes because it converts pdarrays to numpy arrays and calls np.allclose.
- arkouda.testing.assert_almost_equivalent(left, right, rtol: float = 1e-05, atol: float = 1e-08) None [source]¶
Check that the left and right objects are approximately equal.
By approximately equal, we refer to objects that are numbers or that contain numbers which may be equivalent to specific levels of precision.
If the objects are pandas or numpy objects, they are converted to arkouda objects. Then assert_almost_equal is applied to the result.
- Parameters:
left (object)
right (object)
rtol (float, default 1e-5) – Relative tolerance.
atol (float, default 1e-8) – Absolute tolerance.
Warning
This function cannot be used on pdarray of size > ak.client.maxTransferBytes because it converts pdarrays to numpy arrays and calls np.allclose.
See also
- arkouda.testing.assert_arkouda_array_equal(left: arkouda.pdarray | arkouda.Strings | arkouda.Categorical | arkouda.SegArray, right: arkouda.pdarray | arkouda.Strings | arkouda.Categorical | arkouda.SegArray, check_dtype: bool = True, err_msg=None, check_same=None, obj: str = 'pdarray', index_values=None) None [source]¶
Check that ‘ak.pdarray’ or ‘ak.Strings’, ‘ak.Categorical’, or ‘ak.SegArray’ is equivalent.
- Parameters:
left (arkouda.pdarray or arkouda.Strings or arkouda.Categorical or arkouda.SegArray) – The two arrays to be compared.
right (arkouda.pdarray or arkouda.Strings or arkouda.Categorical or arkouda.SegArray) – The two arrays to be compared.
check_dtype (bool, default True) – Check dtype if both a and b are ak.pdarray.
err_msg (str, default None) – If provided, used as assertion message.
check_same (None|'copy'|'same', default None) – Ensure left and right refer/do not refer to the same memory area.
obj (str, default 'numpy array') – Specify object name being compared, internally used to show appropriate assertion message.
index_values (Index | arkouda.pdarray, default None) – optional index (shared by both left and right), used in output.
- arkouda.testing.assert_arkouda_array_equivalent(left: arkouda.pdarray | arkouda.Strings | arkouda.Categorical | arkouda.SegArray | numpy.ndarray | pandas.Categorical, right: arkouda.pdarray | arkouda.Strings | arkouda.Categorical | arkouda.SegArray | numpy.ndarray | pandas.Categorical, check_dtype: bool = True, err_msg=None, check_same=None, obj: str = 'pdarray', index_values=None) None [source]¶
Check that ‘np.array’, ‘pd.Categorical’, ‘ak.pdarray’, ‘ak.Strings’, ‘ak.Categorical’, or ‘ak.SegArray’ is equivalent.
np.nparray’s and pd.Categorical’s will be converted to the arkouda equivalent. Then assert_arkouda_pdarray_equal will be applied to the result.
- Parameters:
left (np.ndarray, pd.Categorical, arkouda.pdarray or arkouda.Strings or arkouda.Categorical) – The two arrays to be compared.
right (np.ndarray, pd.Categorical, arkouda.pdarray or arkouda.Strings or arkouda.Categorical) – The two arrays to be compared.
check_dtype (bool, default True) – Check dtype if both a and b are ak.pdarray or np.ndarray.
err_msg (str, default None) – If provided, used as assertion message.
check_same (None|'copy'|'same', default None) – Ensure left and right refer/do not refer to the same memory area.
obj (str, default 'numpy array') – Specify object name being compared, internally used to show appropriate assertion message.
index_values (Index | arkouda.pdarray, default None) – optional index (shared by both left and right), used in output.
See also
- arkouda.testing.assert_arkouda_pdarray_equal(left: arkouda.pdarray, right: arkouda.pdarray, check_dtype: bool = True, err_msg=None, check_same=None, obj: str = 'pdarray', index_values=None) None [source]¶
Check that the two ‘ak.pdarray’s are equivalent.
- Parameters:
left (arkouda.pdarray) – The two arrays to be compared.
right (arkouda.pdarray) – The two arrays to be compared.
check_dtype (bool, default True) – Check dtype if both a and b are ak.pdarray.
err_msg (str, default None) – If provided, used as assertion message.
check_same (None|'copy'|'same', default None) – Ensure left and right refer/do not refer to the same memory area.
obj (str, default 'pdarray') – Specify object name being compared, internally used to show appropriate assertion message.
index_values (Index | arkouda.pdarray, default None) – optional index (shared by both left and right), used in output.
- arkouda.testing.assert_arkouda_segarray_equal(left: arkouda.SegArray, right: arkouda.SegArray, check_dtype: bool = True, err_msg=None, check_same=None, obj: str = 'segarray') None [source]¶
Check that the two ‘ak.segarray’s are equivalent.
- Parameters:
left (arkouda.segarray) – The two segarrays to be compared.
right (arkouda.segarray) – The two segarrays to be compared.
check_dtype (bool, default True) – Check dtype if both a and b are ak.pdarray.
err_msg (str, default None) – If provided, used as assertion message.
check_same (None|'copy'|'same', default None) – Ensure left and right refer/do not refer to the same memory area.
obj (str, default 'pdarray') – Specify object name being compared, internally used to show appropriate assertion message.
- arkouda.testing.assert_arkouda_strings_equal(left, right, err_msg=None, check_same=None, obj: str = 'Strings', index_values=None) None [source]¶
Check that ‘ak.Strings’ is equivalent.
- Parameters:
left (arkouda.Strings) – The two Strings to be compared.
right (arkouda.Strings) – The two Strings to be compared.
err_msg (str, default None) – If provided, used as assertion message.
check_same (None|'copy'|'same', default None) – Ensure left and right refer/do not refer to the same memory area.
obj (str, default 'Strings') – Specify object name being compared, internally used to show appropriate assertion message.
index_values (Index | arkouda.pdarray, default None) – optional index (shared by both left and right), used in output.
- arkouda.testing.assert_attr_equal(attr: str, left, right, obj: str = 'Attributes') None [source]¶
Check attributes are equal. Both objects must have attribute.
- Parameters:
attr (str) – Attribute name being compared.
left (object)
right (object)
obj (str, default 'Attributes') – Specify object name being compared, internally used to show appropriate assertion message
- arkouda.testing.assert_categorical_equal(left, right, check_dtype: bool = True, check_category_order: bool = True, obj: str = 'Categorical') None [source]¶
Test that Categoricals are equivalent.
- Parameters:
left (Categorical)
right (Categorical)
check_dtype (bool, default True) – Check that integer dtype of the codes are the same.
check_category_order (bool, default True) – Whether the order of the categories should be compared, which implies identical integer codes. If False, only the resulting values are compared. The ordered attribute is checked regardless.
obj (str, default 'Categorical') – Specify object name being compared, internally used to show appropriate assertion message.
- arkouda.testing.assert_class_equal(left, right, exact: bool = True, obj: str = 'Input') None [source]¶
Checks classes are equal.
- arkouda.testing.assert_contains_all(iterable, dic) None [source]¶
Assert that a dictionary contains all the elements of an iterable. :param iterable: :type iterable: iterable :param dic: :type dic: dict
- arkouda.testing.assert_copy(iter1, iter2, **eql_kwargs) None [source]¶
Checks that the elements are equal, but not the same object. (Does not check that items in sequences are also not the same object.)
- Parameters:
iter1 (iterable) – Iterables that produce elements comparable with assert_almost_equal.
iter2 (iterable) – Iterables that produce elements comparable with assert_almost_equal.
- arkouda.testing.assert_dict_equal(left, right, compare_keys: bool = True) None [source]¶
Assert that two dictionaries are equal. Values must be arkouda objects. :param left: The dictionaries to be compared. :type left: dict :param right: The dictionaries to be compared. :type right: dict :param compare_keys: Whether to compare the keys.
If False, only the values are compared.
- arkouda.testing.assert_equal(left, right, **kwargs) None [source]¶
Wrapper for tm.assert_*_equal to dispatch to the appropriate test function.
- arkouda.testing.assert_equivalent(left, right, **kwargs) None [source]¶
Wrapper for tm.assert_*_equivalent to dispatch to the appropriate test function.
- Parameters:
left (Index, pd.Index, Series, pd.Series, DataFrame, pd.DataFrame,)
right (Index, pd.Index, Series, pd.Series, DataFrame, pd.DataFrame,)
Strings – The two items to be compared.
Categorical – The two items to be compared.
pd.Categorical – The two items to be compared.
SegArray – The two items to be compared.
pdarray – The two items to be compared.
np.ndarray – The two items to be compared.
:param : The two items to be compared. :param **kwargs: All keyword arguments are passed through to the underlying assert method.
- arkouda.testing.assert_frame_equal(left: arkouda.DataFrame, right: arkouda.DataFrame, check_dtype: bool = True, check_index_type: bool = True, check_column_type: bool = True, check_frame_type: bool = True, check_names: bool = True, check_exact: bool = True, check_categorical: bool = True, check_like: bool = False, rtol: float = 1e-05, atol: float = 1e-08, obj: str = 'DataFrame') None [source]¶
Check that left and right DataFrame are equal.
This function is intended to compare two DataFrames and output any differences. It is mostly intended for use in unit tests. Additional parameters allow varying the strictness of the equality checks performed.
- Parameters:
left (DataFrame) – First DataFrame to compare.
right (DataFrame) – Second DataFrame to compare.
check_dtype (bool, default True) – Whether to check the DataFrame dtype is identical.
check_index_type (bool, default = True) – Whether to check the Index class, dtype and inferred_type are identical.
check_column_type (bool or {'equiv'}, default 'equiv') – Whether to check the columns class, dtype and inferred_type are identical. Is passed as the
exact
argument ofassert_index_equal()
.check_frame_type (bool, default True) – Whether to check the DataFrame class is identical.
check_names (bool, default True) – Whether to check that the names attribute for both the index and column attributes of the DataFrame is identical.
check_exact (bool, default False) – Whether to compare number exactly.
check_categorical (bool, default True) – Whether to compare internal Categorical exactly.
check_like (bool, default False) – If True, ignore the order of index & columns. Note: index labels must match their respective rows (same as in columns) - same labels must be with the same data.
rtol (float, default 1e-5) – Relative tolerance. Only used when check_exact is False.
atol (float, default 1e-8) – Absolute tolerance. Only used when check_exact is False.
obj (str, default 'DataFrame') – Specify object name being compared, internally used to show appropriate assertion message.
See also
assert_series_equal
Equivalent method for asserting Series equality.
Examples
This example shows comparing two DataFrames that are equal but with columns of differing dtypes.
>>> from arkouda.testing import assert_frame_equal >>> df1 = ak.DataFrame({'a': [1, 2], 'b': [3, 4]}) >>> df2 = ak.DataFrame({'a': [1, 2], 'b': [3.0, 4.0]})
df1 equals itself.
>>> assert_frame_equal(df1, df1)
df1 differs from df2 as column ‘b’ is of a different type.
>>> assert_frame_equal(df1, df2) Traceback (most recent call last): ... AssertionError: Attributes of DataFrame.iloc[:, 1] (column name="b") are different
Attribute “dtype” are different [left]: int64 [right]: float64
Ignore differing dtypes in columns with check_dtype.
>>> assert_frame_equal(df1, df2, check_dtype=False)
- arkouda.testing.assert_frame_equivalent(left: arkouda.DataFrame | pandas.DataFrame, right: arkouda.DataFrame | pandas.DataFrame, check_dtype: bool = True, check_index_type: bool = True, check_column_type: bool = True, check_frame_type: bool = True, check_names: bool = True, check_exact: bool = True, check_categorical: bool = True, check_like: bool = False, rtol: float = 1e-05, atol: float = 1e-08, obj: str = 'DataFrame') None [source]¶
Check that left and right DataFrame are equal.
This function is intended to compare two DataFrames and output any differences. It is mostly intended for use in unit tests. Additional parameters allow varying the strictness of the equality checks performed.
pd.DataFrame’s will be converted to the arkouda equivalent. Then assert_frame_equal will be applied to the result.
- Parameters:
left (DataFrame or pd.DataFrame) – First DataFrame to compare.
right (DataFrame or pd.DataFrame) – Second DataFrame to compare.
check_dtype (bool, default True) – Whether to check the DataFrame dtype is identical.
check_index_type (bool, default = True) – Whether to check the Index class, dtype and inferred_type are identical.
check_column_type (bool or {'equiv'}, default 'equiv') – Whether to check the columns class, dtype and inferred_type are identical. Is passed as the
exact
argument ofassert_index_equal()
.check_frame_type (bool, default True) – Whether to check the DataFrame class is identical.
check_names (bool, default True) – Whether to check that the names attribute for both the index and column attributes of the DataFrame is identical.
check_exact (bool, default False) – Whether to compare number exactly.
check_categorical (bool, default True) – Whether to compare internal Categorical exactly.
check_like (bool, default False) – If True, ignore the order of index & columns. Note: index labels must match their respective rows (same as in columns) - same labels must be with the same data.
rtol (float, default 1e-5) – Relative tolerance. Only used when check_exact is False.
atol (float, default 1e-8) – Absolute tolerance. Only used when check_exact is False.
obj (str, default 'DataFrame') – Specify object name being compared, internally used to show appropriate assertion message.
See also
Examples
This example shows comparing two DataFrames that are equal but with columns of differing dtypes.
>>> from arkouda.testing import assert_frame_equivalent >>> import pandas as pd >>> df1 = ak.DataFrame({'a': [1, 2], 'b': [3, 4]}) >>> df2 = pd.DataFrame({'a': [1, 2], 'b': [3.0, 4.0]}) >>> assert_frame_equivalent(df1, df1)
- arkouda.testing.assert_index_equal(left: arkouda.Index, right: arkouda.Index, exact: bool = True, check_names: bool = True, check_exact: bool = True, check_categorical: bool = True, check_order: bool = True, rtol: float = 1e-05, atol: float = 1e-08, obj: str = 'Index') None [source]¶
Check that left and right Index are equal.
- Parameters:
left (Index)
right (Index)
exact (True) – Whether to check the Index class, dtype and inferred_type are identical.
check_names (bool, default True) – Whether to check the names attribute.
check_exact (bool, default True) – Whether to compare number exactly.
check_categorical (bool, default True) – Whether to compare internal Categorical exactly.
check_order (bool, default True) – Whether to compare the order of index entries as well as their values. If True, both indexes must contain the same elements, in the same order. If False, both indexes must contain the same elements, but in any order.
rtol (float, default 1e-5) – Relative tolerance. Only used when check_exact is False.
atol (float, default 1e-8) – Absolute tolerance. Only used when check_exact is False.
obj (str, default 'Index') – Specify object name being compared, internally used to show appropriate assertion message.
Examples
>>> from arkouda import testing as tm >>> a = ak.Index([1, 2, 3]) >>> b = ak.Index([1, 2, 3]) >>> tm.assert_index_equal(a, b)
- arkouda.testing.assert_index_equivalent(left: arkouda.Index | pandas.Index, right: arkouda.Index | pandas.Index, exact: bool = True, check_names: bool = True, check_exact: bool = True, check_categorical: bool = True, check_order: bool = True, rtol: float = 1e-05, atol: float = 1e-08, obj: str = 'Index') None [source]¶
Check that left and right Index are equal.
If the objects are pandas.Index, they are converted to arkouda.Index. Then assert_almost_equal is applied to the result.
- Parameters:
left (Index or pandas.Index)
right (Index or pandas.Index)
exact (True) – Whether to check the Index class, dtype and inferred_type are identical.
check_names (bool, default True) – Whether to check the names attribute.
check_exact (bool, default True) – Whether to compare number exactly.
check_categorical (bool, default True) – Whether to compare internal Categorical exactly.
check_order (bool, default True) – Whether to compare the order of index entries as well as their values. If True, both indexes must contain the same elements, in the same order. If False, both indexes must contain the same elements, but in any order.
rtol (float, default 1e-5) – Relative tolerance. Only used when check_exact is False.
atol (float, default 1e-8) – Absolute tolerance. Only used when check_exact is False.
obj (str, default 'Index') – Specify object name being compared, internally used to show appropriate assertion message.
See also
Examples
>>> from arkouda import testing as tm >>> import pandas as pd >>> a = ak.Index([1, 2, 3]) >>> b = pd.Index([1, 2, 3]) >>> tm.assert_index_equivalent(a, b)
- arkouda.testing.assert_series_equal(left, right, check_dtype: bool = True, check_index_type: bool = True, check_series_type: bool = True, check_names: bool = True, check_exact: bool = False, check_categorical: bool = True, check_category_order: bool = True, rtol: float = 1e-05, atol: float = 1e-08, obj: str = 'Series', *, check_index: bool = True, check_like: bool = False) None [source]¶
Check that left and right Series are equal.
- Parameters:
left (Series)
right (Series)
check_dtype (bool, default True) – Whether to check the Series dtype is identical.
check_index_type (bool, default True) – Whether to check the Index class, dtype and inferred_type are identical.
check_series_type (bool, default True) – Whether to check the Series class is identical.
check_names (bool, default True) – Whether to check the Series and Index names attribute.
check_exact (bool, default False) – Whether to compare number exactly.
check_categorical (bool, default True) – Whether to compare internal Categorical exactly.
check_category_order (bool, default True) – Whether to compare category order of internal Categoricals.
rtol (float, default 1e-5) – Relative tolerance. Only used when check_exact is False.
atol (float, default 1e-8) – Absolute tolerance. Only used when check_exact is False.
obj (str, default 'Series') – Specify object name being compared, internally used to show appropriate assertion message.
check_index (bool, default True) – Whether to check index equivalence. If False, then compare only values.
check_like (bool, default False) – If True, ignore the order of the index. Must be False if check_index is False. Note: same labels must be with the same data.
Examples
>>> from arkouda import testing as tm >>> a = ak.Series([1, 2, 3, 4]) >>> b = ak.Series([1, 2, 3, 4]) >>> tm.assert_series_equal(a, b)
- arkouda.testing.assert_series_equivalent(left: arkouda.Series | pandas.Series, right: arkouda.Series | pandas.Series, check_dtype: bool = True, check_index_type: bool = True, check_series_type: bool = True, check_names: bool = True, check_exact: bool = False, check_categorical: bool = True, check_category_order: bool = True, rtol: float = 1e-05, atol: float = 1e-08, obj: str = 'Series', *, check_index: bool = True, check_like: bool = False) None [source]¶
Check that left and right Series are equal.
pd.Series’s will be converted to the arkouda equivalent. Then assert_series_equal will be applied to the result.
- Parameters:
left (Series or pd.Series)
right (Series or pd.Series)
check_dtype (bool, default True) – Whether to check the Series dtype is identical.
check_index_type (bool, default True) – Whether to check the Index class, dtype and inferred_type are identical.
check_series_type (bool, default True) – Whether to check the Series class is identical.
check_names (bool, default True) – Whether to check the Series and Index names attribute.
check_exact (bool, default False) – Whether to compare number exactly.
check_categorical (bool, default True) – Whether to compare internal Categorical exactly.
check_category_order (bool, default True) – Whether to compare category order of internal Categoricals.
rtol (float, default 1e-5) – Relative tolerance. Only used when check_exact is False.
atol (float, default 1e-8) – Absolute tolerance. Only used when check_exact is False.
obj (str, default 'Series') – Specify object name being compared, internally used to show appropriate assertion message.
check_index (bool, default True) – Whether to check index equivalence. If False, then compare only values.
check_like (bool, default False) – If True, ignore the order of the index. Must be False if check_index is False. Note: same labels must be with the same data.
See also
Examples
>>> from arkouda import testing as tm >>> import pandas as pd >>> a = ak.Series([1, 2, 3, 4]) >>> b = pd.Series([1, 2, 3, 4]) >>> tm.assert_series_equivalent(a, b)