code: def test_vlsp_formatting():
      text = VI_TREEBANK_PAREN.split("\n")[0]
      trees = tree_reader.read_trees(text)
      assert len(trees) == 1
      assert str(trees[0]) == text
  
      assert "{:_V}".format(trees[0]) == VI_TREEBANK_VLSP
      trees[0].tree_id = 50
      assert "{:_Vi}".format(trees[0]) == VI_TREEBANK_VLSP_50
      trees[0].tree_id = 100
      assert "{:_Vi}".format(trees[0]) == VI_TREEBANK_VLSP_100
  
      empty = tree_reader.read_trees("(ROOT)")[0]
      with pytest.raises(ValueError):
          "{:V}".format(empty)
  
      branches = tree_reader.read_trees("(ROOT (1) (2) (3))")[0]
      with pytest.raises(ValueError):
          "{:V}".format(branches)
  
file_path: stanza/stanza/tests/constituency/test_vietnamese.py
imports: import os
  import tempfile
  import pytest
  from stanza.models.common import pretrain
  from stanza.models.constituency import tree_reader
  from stanza.tests.constituency.test_trainer import build_trainer
label_desc: Use image node_id 4 for calling a global function with example usage: test_vlsp_formatting() without return types