# Path: turkish_morphology/analyze.py
# def _remove_proper_feature(human_readable: str) -> str:
# def surface_form(surface_form: str,
#                  use_proper_feature: Optional[bool] = True) -> List[str]:


from turkish_morphology import analyze
from absl.testing import absltest
from absl.testing import parameterized
          "surface_form": "yaşadıklarımdan",
          "expected": [
              ("(yaşa[VB]+[Polarity=Pos])([NOMP]-DHk[Derivation=PastNom]"
               "+lAr[PersonNumber=A3pl]+Hm[Possessive=P1sg]+NDAn[Case=Abl]"
               "+[Copula=PresCop]+[PersonNumber=V3pl])"),
              ("(yaşa[VB]+[Polarity=Pos])([NOMP]-DHk[Derivation=PastNom]"
               "+lAr[PersonNumber=A3pl]+Hm[Possessive=P1sg]+NDAn[Case=Abl]"
               "+[Copula=PresCop]+[PersonNumber=V3sg])"),
              ("(yaşa[VB]+[Polarity=Pos])([VN]-DHk[Derivation=PastNom]"
               "+lAr[PersonNumber=A3pl]+Hm[Possessive=P1sg]+NDAn[Case=Abl])"),
          ],
          "use_proper_feature": False,
      },
  ])
  def test_success(self, surface_form, expected, use_proper_feature=True):
    actual = analyze.surface_form(surface_form,
                                  use_proper_feature=use_proper_feature)
    self.assertListEqual(expected, actual)

  @parameterized.named_parameters([
      {
          "testcase_name": "EmptyWord",
          "surface_form": "",
      },
      {
          "testcase_name": "InvalidWord",
          "surface_form": "foo",
      },
  ])
  def test_failure(self, surface_form):

# Path: turkish_morphology/analyze.py
# def _remove_proper_feature(human_readable: str) -> str:
# def surface_form(surface_form: str,
#                  use_proper_feature: Optional[bool] = True) -> List[str]:


# Path: turkish_morphology/analyze_test.py
from turkish_morphology import analyze
from absl.testing import absltest
from absl.testing import parameterized

          "surface_form": "yaşadıklarımdan",
          "expected": [
              ("(yaşa[VB]+[Polarity=Pos])([NOMP]-DHk[Derivation=PastNom]"
               "+lAr[PersonNumber=A3pl]+Hm[Possessive=P1sg]+NDAn[Case=Abl]"
               "+[Copula=PresCop]+[PersonNumber=V3pl])"),
              ("(yaşa[VB]+[Polarity=Pos])([NOMP]-DHk[Derivation=PastNom]"
               "+lAr[PersonNumber=A3pl]+Hm[Possessive=P1sg]+NDAn[Case=Abl]"
               "+[Copula=PresCop]+[PersonNumber=V3sg])"),
              ("(yaşa[VB]+[Polarity=Pos])([VN]-DHk[Derivation=PastNom]"
               "+lAr[PersonNumber=A3pl]+Hm[Possessive=P1sg]+NDAn[Case=Abl])"),
          ],
          "use_proper_feature": False,
      },
  ])
  def test_success(self, surface_form, expected, use_proper_feature=True):
    actual = analyze.surface_form(surface_form,
                                  use_proper_feature=use_proper_feature)
    self.assertListEqual(expected, actual)

  @parameterized.named_parameters([
      {
          "testcase_name": "EmptyWord",
          "surface_form": "",
      },
      {
          "testcase_name": "InvalidWord",
          "surface_form": "foo",
      },
  ])
  def test_failure(self, surface_form):

    actual = analyze.surface_form(surface_form)