code: def test_manager_create_view_two(self):
      message = {
          "id": 1,
          "table_name": "table1",
          "view_name": "view1",
          "cmd": "view",
          "config": {"group_by": ["a"], "split_by": ["b"]},
      }
      manager = PerspectiveManager()
      table = Table(data)
      manager.host_table("table1", table)
      manager._process(message, self.post)
      assert manager._views["view1"].to_dict() == {
          "__ROW_PATH__": [[], [1], [2], [3]],
          "a|a": [1, 1, None, None],
          "a|b": [1, 1, None, None],
          "b|a": [2, None, 2, None],
          "b|b": [1, None, 1, None],
          "c|a": [3, None, None, 3],
          "c|b": [1, None, None, 1],
      }
  
imports: import json
  import time
  import numpy
  import pyarrow
  from datetime import datetime
  from functools import partial
  from pytest import raises
  from perspective import Table, PerspectiveError, PerspectiveManager
label_desc: Use image node_id 17 for calling the TestPerspectiveManager obj's underlying member method code with example usage: obj.test_manager_create_view_two() without return types