code: def test_table_specials(assets_path):
      class_labels = {1: "tree", 2: "car", 3: "road"}
      im_path = assets_path("test.png")
  
      box_annotation = {
          "box_predictions": {
              "box_data": [
                  {
                      "position": {
                          "minX": 0.1,
                          "maxX": 0.2,
                          "minY": 0.3,
                          "maxY": 0.4,
                      },
                      "class_id": 1,
                      "box_caption": "minMax(pixel)",
                      "scores": {"acc": 0.1, "loss": 1.2},
                  },
              ],
              "class_labels": class_labels,
          },
          "box_ground_truth": {
              "box_data": [
                  {
                      "position": {
                          "minX": 0.1,
                          "maxX": 0.2,
                          "minY": 0.3,
                          "maxY": 0.4,
                      },
                      "class_id": 1,
                      "box_caption": "minMax(pixel)",
                      "scores": {"acc": 0.1, "loss": 1.2},
                  },
              ],
              "class_labels": class_labels,
          },
      }
      mask_annotation = {
          "mask_predictions": {
              "mask_data": np.random.randint(0, 4, size=(30, 30)),
              "class_labels": class_labels,
          },
          "mask_ground_truth": {
              "path": im_path,
              "class_labels": class_labels,
          },
      }
  
      table = wandb.Table(
          columns=["image", "table"],
          optional=False,
          dtype=[data_types.Image, data_types.Table],
      )
      with pytest.raises(TypeError):
          table.add_data(None, None)
  
      # Infers specific types from first valid row
      table.add_data(
          data_types.Image(
              np.random.rand(10, 10),
              boxes=box_annotation,
              masks=mask_annotation,
          ),
          data_types.Table(data=[[1, True, None]]),
      )
  
      # Denies conflict
      with pytest.raises(TypeError):
          table.add_data(
              "hello",
              data_types.Table(data=[[1, True, None]]),
          )
  
      # Denies conflict
      with pytest.raises(TypeError):
          table.add_data(
              data_types.Image(
                  np.random.rand(10, 10),
                  boxes=box_annotation,
                  masks=mask_annotation,
              ),
              data_types.Table(data=[[1, "True", None]]),
          )
  
      # allows further refinement
      table.add_data(
          data_types.Image(
              np.random.rand(10, 10),
              boxes=box_annotation,
              masks=mask_annotation,
          ),
          data_types.Table(data=[[1, True, 1]]),
      )
  
      # allows addition
      table.add_data(
          data_types.Image(
              np.random.rand(10, 10),
              boxes=box_annotation,
              masks=mask_annotation,
          ),
          data_types.Table(data=[[1, True, 1]]),
      )
  
imports: import datetime
  import numpy
  import pytest
  import wandb
  from wandb import data_types
  from wandb.sdk.data_types._dtypes import AnyType, BooleanType, ConstType, InvalidType, ListType, NoneType, NumberType, OptionalType, StringType, TimestampType, TypedDictType, TypeRegistry, UnionType, UnknownType
label_desc: Use image node_id 25 for calling a global function with example usage: test_table_specials(assets_path) without return types