new_contents: from panda3d.core import WindowProperties
  
  import pytest
  
  
  def test_winprops_ctor():
      props = WindowProperties()
      assert not props.is_any_specified()
  
  
  def test_winprops_copy_ctor():
      props = WindowProperties()
      props.set_size(1, 2)
  
      props2 = WindowProperties(props)
      assert props == props2
      assert props2.get_size() == (1, 2)
  
      with pytest.raises(TypeError):
          WindowProperties(None)
  
  
  def test_winprops_ctor_kwargs():
      props = WindowProperties(size=(1, 2), origin=3)
  
      assert props.has_size()
      assert props.get_size() == (1, 2)
  
      assert props.has_origin()
      assert props.get_origin() == (3, 3)
  
      # Invalid property should throw
      with pytest.raises(TypeError):
          WindowProperties(swallow_type="african")
  
      # Invalid value should throw
      with pytest.raises(TypeError):
          WindowProperties(size="invalid")
  
  
  def test_winprops_size_staticmethod():
      props = WindowProperties.size(1, 2)
      assert props.has_size()
      assert props.get_size() == (1, 2)
  
      props = WindowProperties.size((1, 2))
      assert props.has_size()
      assert props.get_size() == (1, 2)
  
  
  def test_winprops_size_property():
      props = WindowProperties()
  
      # Test get
      props.set_size(1, 2)
      assert props.size == (1, 2)
  
      # Test has
      props.clear_size()
      assert props.size is None
  
      # Test set
      props.size = (4, 5)
      assert props.get_size() == (4, 5)
  
      # Test clear
      props.size = None
      assert not props.has_size()
  
subject: add a few basic unit tests for WindowProperties class