code: def test_basic(education_df, request):
      # gh43564
      if Version(np.__version__) >= Version("1.25"):
          request.applymarker(
              pytest.mark.xfail(
                  reason=(
                      "pandas default unstable sorting of duplicates"
                      "issue with numpy>=1.25 with AVX instructions"
                  ),
                  strict=False,
              )
          )
      result = education_df.groupby("country")[
          ["gender", "education"]
      ].value_counts(normalize=True)
      expected = Series(
          data=[0.5, 0.25, 0.25, 0.5, 0.5],
          index=MultiIndex.from_tuples(
              [
                  ("FR", "male", "low"),
                  ("FR", "female", "high"),
                  ("FR", "male", "medium"),
                  ("US", "female", "high"),
                  ("US", "male", "low"),
              ],
              names=["country", "gender", "education"],
          ),
          name="proportion",
      )
      tm.assert_series_equal(result, expected)
  
imports: import numpy
  import pytest
  import pandas.util._test_decorators
  from pandas import Categorical, CategoricalIndex, DataFrame, Grouper, Index, MultiIndex, Series, date_range, to_datetime
  import pandas._testing
  from pandas.util.version import Version
label_desc: Use image node_id 12 for calling a global function with example usage: test_basic(education_df, request) without return types