def test_greater_frequency_wrong_var_name():
    with pytest.raises(ValueError):
        greater_frequency(
            raster_ds[['arr1', 'arr2', 'arr3']],
            'arr1',
            data_vars=['arr2', 'arr9'],
        )
def test_greater_frequency_all_data_vars_not_contain_ref_error():
    with pytest.raises(ValueError):
        greater_frequency(
            raster_ds[['arr1', 'arr2', 'arr3']],
            'arr9',
            data_vars=['arr1', 'arr2'],
        )
def test_greater_frequency_data_vars_elem_type_error():
    with pytest.raises(TypeError):
        greater_frequency(
            raster_ds[['arr1', 'arr2', 'arr3']],
            'arr1',
            data_vars=[0],
        )
def test_greater_frequency_dim_ref_param_type_error():
    with pytest.raises(TypeError):
        greater_frequency(raster_ds[['arr1', 'arr2', 'arr3']], ['arr1'])
def test_greater_frequency_raster_type_error():
    with pytest.raises(TypeError):
        greater_frequency(arr1, 'arr1')
def test_greater_frequency_some_data_vars():
    expected_arr = xr.DataArray([[np.nan, 1, 0, 0], [1, 1, np.nan, 1],
                                 [1, 0, 0, 0], [np.nan, 1, 0, np.nan]])
    result_arr = greater_frequency(raster_ds, 'arr', ['arr1', 'arr2'])

    assert result_arr.equals(expected_arr)
def test_greater_frequency_all_data_vars():
    expected_arr = xr.DataArray([[np.nan, 2, 0, 0], [2, 1, np.nan, 1],
                                 [2, 0, 0, 0], [np.nan, 1, 0, np.nan]])
    result_arr = greater_frequency(raster_ds, 'arr')

    assert result_arr.equals(expected_arr)