Comparators
coola.equality.comparators ¶
Contain the comparators to check if two objects are equal or not.
coola.equality.comparators.BaseEqualityComparator ¶
Bases: ABC, Generic[T]
Define the base class to implement an equality operator.
Example usage:
>>> from coola.equality import EqualityConfig
>>> from coola.equality.comparators import DefaultEqualityComparator
>>> from coola.equality.testers import EqualityTester
>>> config = EqualityConfig(tester=EqualityTester())
>>> comparator = DefaultEqualityComparator()
>>> comparator.equal(42, 42, config)
True
>>> comparator.equal("meow", "meov", config)
False
coola.equality.comparators.BaseEqualityComparator.clone
abstractmethod
¶
clone() -> BaseEqualityComparator
Return a copy of the equality operator.
Returns:
| Type | Description |
|---|---|
BaseEqualityComparator
|
A copy of the equality operator. |
Example usage:
>>> from coola.equality.comparators import DefaultEqualityComparator
>>> op = DefaultEqualityComparator()
>>> op_cloned = op.clone()
>>> op_cloned
DefaultEqualityComparator()
>>> op is op_cloned
False
coola.equality.comparators.BaseEqualityComparator.equal
abstractmethod
¶
equal(
object1: T, object2: Any, config: EqualityConfig
) -> bool
Indicate if two objects are equal or not.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
object1 |
T
|
Specifies the first object to compare. |
required |
object2 |
Any
|
Specifies the second object to compare. |
required |
config |
EqualityConfig
|
Specifies the equality configuration. |
required |
Returns:
| Type | Description |
|---|---|
bool
|
|
Example usage:
>>> from coola.equality import EqualityConfig
>>> from coola.equality.comparators import DefaultEqualityComparator
>>> from coola.equality.testers import EqualityTester
>>> config = EqualityConfig(tester=EqualityTester())
>>> comparator = DefaultEqualityComparator()
>>> comparator.equal(42, 42, config)
True
>>> comparator.equal("meow", "meov", config)
False
coola.equality.comparators.DefaultEqualityComparator ¶
Bases: BaseEqualityComparator[Any]
Implement a default equality comparator.
The == operator is used to test the equality between the
objects.
Example usage:
>>> from coola.equality import EqualityConfig
>>> from coola.equality.comparators import DefaultEqualityComparator
>>> from coola.equality.testers import EqualityTester
>>> config = EqualityConfig(tester=EqualityTester())
>>> comparator = DefaultEqualityComparator()
>>> comparator.equal(42, 42, config)
True
>>> comparator.equal("meow", "meov", config)
False
coola.equality.comparators.JaxArrayEqualityComparator ¶
Bases: BaseEqualityComparator[ndarray]
Implement an equality comparator for jax.numpy.ndarray.
Example usage:
>>> import jax.numpy as jnp
>>> from coola.equality import EqualityConfig
>>> from coola.equality.comparators import JaxArrayEqualityComparator
>>> from coola.equality.testers import EqualityTester
>>> config = EqualityConfig(tester=EqualityTester())
>>> comparator = JaxArrayEqualityComparator()
>>> comparator.equal(jnp.ones((2, 3)), jnp.ones((2, 3)), config)
True
>>> comparator.equal(jnp.ones((2, 3)), jnp.zeros((2, 3)), config)
False
coola.equality.comparators.MappingEqualityComparator ¶
Bases: BaseEqualityComparator[Mapping]
Implement a sequence equality comparator.
Example usage:
>>> from coola.equality import EqualityConfig
>>> from coola.equality.comparators import MappingEqualityComparator
>>> from coola.equality.testers import EqualityTester
>>> config = EqualityConfig(tester=EqualityTester())
>>> comparator = MappingEqualityComparator()
>>> comparator.equal({"a": 1, "b": 2}, {"a": 1, "b": 2}, config)
True
>>> comparator.equal({"a": 1, "b": 2}, {"a": 1, "b": 4}, config)
False
coola.equality.comparators.NumpyArrayEqualityComparator ¶
Bases: BaseEqualityComparator[ndarray]
Implement an equality comparator for numpy.ndarray.
Example usage:
>>> import numpy as np
>>> from coola.equality import EqualityConfig
>>> from coola.equality.comparators import NumpyArrayEqualityComparator
>>> from coola.equality.testers import EqualityTester
>>> config = EqualityConfig(tester=EqualityTester())
>>> comparator = NumpyArrayEqualityComparator()
>>> comparator.equal(np.ones((2, 3)), np.ones((2, 3)), config)
True
>>> comparator.equal(np.ones((2, 3)), np.zeros((2, 3)), config)
False
coola.equality.comparators.NumpyMaskedArrayEqualityComparator ¶
Bases: BaseEqualityComparator[MaskedArray]
Implement an equality comparator for numpy.ndarray.
Example usage:
>>> import numpy as np
>>> from coola.equality import EqualityConfig
>>> from coola.equality.comparators import NumpyMaskedArrayEqualityComparator
>>> from coola.equality.testers import EqualityTester
>>> config = EqualityConfig(tester=EqualityTester())
>>> comparator = NumpyMaskedArrayEqualityComparator()
>>> comparator.equal(np.ma.array(data=[0.0, 1.0, 1.2], mask=[0, 1, 0]), np.ma.array(data=[0.0, 1.0, 1.2], mask=[0, 1, 0]), config,)
True
>>> comparator.equal(np.ma.array(data=[0.0, 1.0, 1.2], mask=[0, 1, 0]), np.ma.array(data=[0.0, 1.0, 2.0], mask=[0, 1, 0]), config,)
False
coola.equality.comparators.PandasDataFrameEqualityComparator ¶
Bases: BaseEqualityComparator[DataFrame]
Implement an equality comparator for pandas.DataFrame.
Example usage:
>>> import pandas as np
>>> from coola.equality import EqualityConfig
>>> from coola.equality.comparators import PandasDataFrameEqualityComparator
>>> from coola.equality.testers import EqualityTester
>>> config = EqualityConfig(tester=EqualityTester())
>>> comparator = PandasDataFrameEqualityComparator()
>>> comparator.equal(
... pandas.DataFrame({"col": [1, 2, 3]}),
... pandas.DataFrame({"col": [1, 2, 3]}),
... config,
... )
True
>>> comparator.equal(
... pandas.DataFrame({"col": [1, 2, 3]}),
... pandas.DataFrame({"col": [1, 2, 4]}),
... config,
... )
False
coola.equality.comparators.PandasSeriesEqualityComparator ¶
Bases: BaseEqualityComparator[Series]
Implement an equality comparator for pandas.Series.
Example usage:
>>> import pandas as np
>>> from coola.equality import EqualityConfig
>>> from coola.equality.comparators import PandasSeriesEqualityComparator
>>> from coola.equality.testers import EqualityTester
>>> config = EqualityConfig(tester=EqualityTester())
>>> comparator = PandasSeriesEqualityComparator()
>>> comparator.equal(pandas.Series([1, 2, 3]), pandas.Series([1, 2, 3]), config)
True
>>> comparator.equal(pandas.Series([1, 2, 3]), pandas.Series([1, 2, 4]), config)
False
coola.equality.comparators.PolarsDataFrameEqualityComparator ¶
Bases: BaseEqualityComparator[DataFrame]
Implement an equality comparator for polars.DataFrame.
Example usage:
>>> import polars as np
>>> from coola.equality import EqualityConfig
>>> from coola.equality.comparators import PolarsDataFrameEqualityComparator
>>> from coola.equality.testers import EqualityTester
>>> config = EqualityConfig(tester=EqualityTester())
>>> comparator = PolarsDataFrameEqualityComparator()
>>> comparator.equal(
... polars.DataFrame({"col": [1, 2, 3]}),
... polars.DataFrame({"col": [1, 2, 3]}),
... config,
... )
True
>>> comparator.equal(
... polars.DataFrame({"col": [1, 2, 3]}),
... polars.DataFrame({"col": [1, 2, 4]}),
... config,
... )
False
coola.equality.comparators.PolarsSeriesEqualityComparator ¶
Bases: BaseEqualityComparator[Series]
Implement an equality comparator for polars.Series.
Example usage:
>>> import polars as np
>>> from coola.equality import EqualityConfig
>>> from coola.equality.comparators import PolarsSeriesEqualityComparator
>>> from coola.equality.testers import EqualityTester
>>> config = EqualityConfig(tester=EqualityTester())
>>> comparator = PolarsSeriesEqualityComparator()
>>> comparator.equal(polars.Series([1, 2, 3]), polars.Series([1, 2, 3]), config)
True
>>> comparator.equal(polars.Series([1, 2, 3]), polars.Series([1, 2, 4]), config)
False
coola.equality.comparators.ScalarEqualityComparator ¶
Bases: BaseEqualityComparator[Any]
Implement a default equality comparator.
Example usage:
>>> from coola.equality import EqualityConfig
>>> from coola.equality.comparators import ScalarEqualityComparator
>>> from coola.equality.testers import EqualityTester
>>> config = EqualityConfig(tester=EqualityTester())
>>> comparator = ScalarEqualityComparator()
>>> comparator.equal(42.0, 42.0, config)
True
>>> comparator.equal(42.0, 1.0, config)
False
coola.equality.comparators.SequenceEqualityComparator ¶
Bases: BaseEqualityComparator[Sequence]
Implement a sequence equality comparator.
Example usage:
>>> from coola.equality import EqualityConfig
>>> from coola.equality.comparators import SequenceEqualityComparator
>>> from coola.equality.testers import EqualityTester
>>> config = EqualityConfig(tester=EqualityTester())
>>> comparator = SequenceEqualityComparator()
>>> comparator.equal([1, 2, 3], [1, 2, 3], config)
True
>>> comparator.equal([1, 2, 3], [1, 2, 4], config)
False
coola.equality.comparators.TorchPackedSequenceEqualityComparator ¶
Bases: BaseEqualityComparator[PackedSequence]
Implement an equality comparator for torch.Tensor.
Example usage:
>>> import torch
>>> from coola.equality import EqualityConfig
>>> from coola.equality.comparators import TorchPackedSequenceEqualityComparator
>>> from coola.equality.testers import EqualityTester
>>> config = EqualityConfig(tester=EqualityTester())
>>> comparator = TorchTensorEqualityComparator()
>>> comparator.equal(torch.ones(2, 3), torch.ones(2, 3), config)
True
>>> comparator.equal(torch.ones(2, 3), torch.zeros(2, 3), config)
False
coola.equality.comparators.TorchTensorEqualityComparator ¶
Bases: BaseEqualityComparator[Tensor]
Implement an equality comparator for torch.Tensor.
Example usage:
>>> import torch
>>> from coola.equality import EqualityConfig
>>> from coola.equality.comparators import TorchTensorEqualityComparator
>>> from coola.equality.testers import EqualityTester
>>> config = EqualityConfig(tester=EqualityTester())
>>> comparator = TorchTensorEqualityComparator()
>>> comparator.equal(torch.ones(2, 3), torch.ones(2, 3), config)
True
>>> comparator.equal(torch.ones(2, 3), torch.zeros(2, 3), config)
False
coola.equality.comparators.XarrayDataArrayEqualityComparator ¶
Bases: BaseEqualityComparator[DataArray]
Implement an equality comparator for xarray.DataArray.
Example usage:
>>> import numpy as np
>>> import xarray as xr
>>> from coola.equality import EqualityConfig
>>> from coola.equality.comparators import XarrayDataArrayEqualityComparator
>>> from coola.equality.testers import EqualityTester
>>> config = EqualityConfig(tester=EqualityTester())
>>> comparator = XarrayDataArrayEqualityComparator()
>>> comparator.equal(
... xr.DataArray(np.arange(6), dims=["z"]),
... xr.DataArray(np.arange(6), dims=["z"]),
... config,
... )
True
>>> comparator.equal(
... xr.DataArray(np.ones(6), dims=["z"]),
... xr.DataArray(np.zeros(6), dims=["z"]),
... config,
... )
False
coola.equality.comparators.XarrayDatasetEqualityComparator ¶
Bases: BaseEqualityComparator[Dataset]
Implement an equality comparator for xarray.Dataset.
Example usage:
>>> import numpy as np
>>> import xarray as xr
>>> from coola.equality import EqualityConfig
>>> from coola.equality.comparators import XarrayDatasetEqualityComparator
>>> from coola.equality.testers import EqualityTester
>>> config = EqualityConfig(tester=EqualityTester())
>>> comparator = XarrayDatasetEqualityComparator()
>>> comparator.equal(
... xr.Dataset({ "x": xr.DataArray(np.arange(6), dims=["z"])}),
... xr.Dataset({ "x": xr.DataArray(np.arange(6), dims=["z"])}),
... config,
... )
True
>>> comparator.equal(
... xr.Dataset({ "x": xr.DataArray(np.zeros(6), dims=["z"])}),
... xr.Dataset({ "x": xr.DataArray(np.ones(6), dims=["z"])}),
... config,
... )
False
coola.equality.comparators.XarrayVariableEqualityComparator ¶
Bases: BaseEqualityComparator[Variable]
Implement an equality comparator for xarray.Variable.
Example usage:
>>> import numpy as np
>>> import xarray as xr
>>> from coola.equality import EqualityConfig
>>> from coola.equality.comparators import XarrayVariableEqualityComparator
>>> from coola.equality.testers import EqualityTester
>>> config = EqualityConfig(tester=EqualityTester())
>>> comparator = XarrayVariableEqualityComparator()
>>> comparator.equal(
... xr.Variable(dims=["z"], data=np.arange(6)),
... xr.Variable(dims=["z"], data=np.arange(6)),
... config,
... )
True
>>> comparator.equal(
... xr.Variable(dims=["z"], data=np.zeros(6)),
... xr.Variable(dims=["z"], data=np.ones(6)),
... config,
... )
False
coola.equality.comparators.get_type_comparator_mapping ¶
get_type_comparator_mapping() -> (
dict[type, BaseEqualityComparator]
)
Get a default mapping between the types and the equality comparators.
Returns:
| Type | Description |
|---|---|
dict[type, BaseEqualityComparator]
|
The mapping between the types and the equality comparators. |
>>> from coola.equality.comparators import get_type_comparator_mapping
>>> get_type_comparator_mapping()
{<class 'object'>: DefaultEqualityComparator(),
<class 'collections.abc.Mapping'>: MappingEqualityComparator(),
<class 'collections.abc.Sequence'>: SequenceEqualityComparator(), ...}