code: def test_font_size_from_string(self) -> None:
      class Foo(HasProps):
          x = bcpd.FontSizeSpec(default="0px")
  
      css_units = (
          "%|em|ex|ch|ic|rem|vw|vh|vi|vb|vmin|vmax|cm|mm|q|in|pc|pt|px"
      )
  
      a = Foo()
      assert a.x == "0px"
  
      for unit in css_units.split("|"):
          v = f"10{unit}"
          a.x = v
          assert a.x == v
          assert a.lookup("x").get_value(a) == Value(v)
  
          v = f"10.2{unit}"
          a.x = v
          assert a.x == v
          assert a.lookup("x").get_value(a) == Value(v)
  
          f = f"_10{unit}"
          a.x = f
          assert a.x == f
          assert a.lookup("x").get_value(a) == Field(f)
  
          f = f"_10.2{unit}"
          a.x = f
          assert a.x == f
          assert a.lookup("x").get_value(a) == Field(f)
  
      for unit in css_units.upper().split("|"):
          v = f"10{unit}"
          a.x = v
          assert a.x == v
          assert a.lookup("x").get_value(a) == Value(v)
  
          v = f"10.2{unit}"
          a.x = v
          assert a.x == v
          assert a.lookup("x").get_value(a) == Value(v)
  
          f = f"_10{unit}"
          a.x = f
          assert a.x == f
          assert a.lookup("x").get_value(a) == Field(f)
  
          f = f"_10.2{unit}"
          a.x = f
          assert a.x == f
          assert a.lookup("x").get_value(a) == Field(f)
  
imports: from __future__ import annotations
  import pytest
  import datetime
  import warnings
  from copy import copy
  import numpy
  import pandas
  from bokeh.core.has_props import HasProps, Local
  from bokeh.core.property.vectorization import Field, Value, field, value
  from tests.support.util.api import verify_all
  import bokeh.core.property.dataspec
label_desc: Use image node_id 1 for calling the Test_FontSizeSpec obj's underlying member method code with example usage: obj.test_font_size_from_string() without return types