def METHOD_NAME():
    sim = CustomStateSimulator(cirq.StateVectorSimulationState, split_untangled_states=True)
    circuit = create_test_circuit()
    r = sim.simulate(circuit)
    assert r.measurements == {'a': np.array([1]), 'b': np.array([2])}
    # Ensure the state is in product-state mode, and it's got three states (q0, q1, phase)
    assert isinstance(r._final_simulator_state, cirq.SimulationProductState)
    assert len(r._final_simulator_state.sim_states) == 3
    assert np.allclose(
        r._final_simulator_state.create_merged_state()._state._state_vector,
        [[0, 0, 0], [0, 0, 0], [0, 0, 1]],
    )