code: def test_value(self) -> None:
      class Foo(HasProps):
          x = bcpd.NumberSpec("xfield")
  
      f = Foo()
      assert f.x == "xfield"
      f.x = 12
      assert f.x == 12
      assert Foo.__dict__["x"].get_value(f) == Value(12)
      f.x = 15
      assert f.x == 15
      assert Foo.__dict__["x"].get_value(f) == Value(15)
      f.x = dict(value=32)
      assert Foo.__dict__["x"].get_value(f) == Value(32)
  
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 2 for calling the Test_NumberSpec obj's underlying member method code with example usage: obj.test_value() without return types