code: def test_invalid(self) -> None:
      prop = bcpe.Either(
          Interval(Int, 0, 100), Regex("^x*$"), List(Int)
      )
  
      assert not prop.is_valid(None)
  
      assert not prop.is_valid(0.0)
      assert not prop.is_valid(1.0)
      assert not prop.is_valid(1.0 + 1.0j)
  
      assert not prop.is_valid(())
      assert not prop.is_valid({})
      assert not prop.is_valid(_TestHasProps())
      assert not prop.is_valid(_TestModel())
  
      assert not prop.is_valid(-100)
  
      assert not prop.is_valid("yyy")
  
      assert not prop.is_valid([1, 2, ""])
  
file_path: bokeh/tests/unit/bokeh/core/property/test_either.py
imports: from __future__ import annotations
  import pytest
  from bokeh.core.properties import Dict, Int, Interval, List, Regex, String
  from bokeh.core.property.wrappers import PropertyValueDict, PropertyValueList
  from tests.support.util.api import verify_all
  from _util_property import _TestHasProps, _TestModel
  import bokeh.core.property.either
label_desc: Use image node_id 3 for calling the Test_Either obj's underlying member method code with example usage: obj.test_invalid() without return types