def METHOD_NAME(self):
    self.validate("not field:value", {"must_not": [{"match": {"field": "value"}}]})
    self.validate("field:(not value)", {"must_not": [{"match": {"field": "value"}}]})
    self.validate("field:(a and not b)", {
        "filter": [{"match": {"field": "a"}}],
        "must_not": [{"match": {"field": "b"}}]
    })
    self.validate(
        "not field:value and not field2:value2",
        {"must_not": [{"match": {"field": "value"}}, {"match": {"field2": "value2"}}]},
    )
    self.validate(
        "not (field:value or field2:value2)",
        {
            "must_not": [
                {
                    "bool": {
                        "minimum_should_match": 1,
                        "should": [{"match": {"field": "value"}}, {"match": {"field2": "value2"}}],
                    }
                }
            ]
        },
        optimize=False,
    )
    self.validate("not (field:value and field2:value2)",
                  {
                      "must_not": [
                          {"match": {"field": "value"}},
                          {"match": {"field2": "value2"}}
                      ]
                  })