prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  Test vectors
  # Description
  This PR adds tests for the vectors layer, improves the doc strings and cleans up the code a tiny bit, but doesn't change any functionality.
  
  One question is - should the input parameters be 
  `edge_width`, `edge_color`, and `length` for the width, color, and the multiplicative length factor for the vectors or should they be something else. They used to just be `width`, `color`, and `length` but I added `edge_` to make the parameters the same as for the `points` and `shapes` layer, though you could argue that for the `points` layer the parameters do different things and that in the vectors layer we don't have a `face` and an `edge` so it is just confusing. I'm open to suggestions - personally I like the consistency - but we can change it. Thoughts @bryantChhun @kevinyamauchi @jni?
   
  ## Type of change
  <!-- Please delete options that are not relevant. -->
  - [x] Bug-fix (non-breaking change which fixes an issue)
  
  # How has this been tested?
  <!-- Please describe the tests that you ran to verify your changes. -->
  - [x] adds `napari/layers/vectors/tests/test_vectors.py`
  
  ## Final checklist:
  - [x] My PR is the minimum possible work for the desired functionality
  - [x] I have commented my code, particularly in hard-to-understand areas
  - [x] I have made corresponding changes to the documentation
  - [x] I have added tests that prove my fix is effective or that my feature works
  
  
  --- END ISSUE ---
  
  Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
  --- BEGIN FILES ---
  Path: `napari/_app_model/actions/_view_actions.py`
  Content:
  ```
  1 """Actions related to the 'View' menu that do not require Qt.
  2 
  3 View actions that do require Qt should go in
  4 `napari/_qt/_qapp_model/qactions/_view.py`.
  5 """
  6 
  7 from app_model.types import Action, ToggleRule
  8 
  9 from napari._app_model.actions._toggle_action import ViewerToggleAction
  10 from napari._app_model.constants import CommandId, MenuGroup, MenuId
  11 from napari.settings import get_settings
  12 
  13 VIEW_ACTIONS: list[Action] = []
  14 MENUID_DICT = {'axes': MenuId.VIEW_AXES, 'scale_bar': MenuId.VIEW_SCALEBAR}
  15 
  16 for cmd, viewer_attr, sub_attr in (
  17     (CommandId.TOGGLE_VIEWER_AXES, 'axes', 'visible'),
  18     (CommandId.TOGGLE_VIEWER_AXES_COLORED, 'axes', 'colored'),
  19     (CommandId.TOGGLE_VIEWER_AXES_LABELS, 'axes', 'labels'),
  20     (CommandId.TOGGLE_VIEWER_AXES_DASHED, 'axes', 'dashed'),
  21     (CommandId.TOGGLE_VIEWER_AXES_ARROWS, 'axes', 'arrows'),
  22     (CommandId.TOGGLE_VIEWER_SCALE_BAR, 'scale_bar', 'visible'),
  23     (CommandId.TOGGLE_VIEWER_SCALE_BAR_COLORED, 'scale_bar', 'colored'),
  24     (CommandId.TOGGLE_VIEWER_SCALE_BAR_TICKS, 'scale_bar', 'ticks'),
  25 ):
  26     VIEW_ACTIONS.append(
  27         ViewerToggleAction(
  28             id=cmd,
  29             title=cmd.command_title,
  30             viewer_attribute=viewer_attr,
  31             sub_attribute=sub_attr,
  32             menus=[{'id': MENUID_DICT[viewer_attr]}],
  33         )
  34     )
  35 
  36 
  37 def _tooltip_visibility_toggle() -> None:
  38     settings = get_settings().appearance
  39     settings.layer_tooltip_visibility = not settings.layer_tooltip_visibility
  40 
  41 
  42 def _get_current_tooltip_visibility() -> bool:
  43     return get_settings().appearance.layer_tooltip_visibility
  44 
  45 
  46 VIEW_ACTIONS.extend(
  47     [
  48         # TODO: this could be made into a toggle setting Action subclass
  49         # using a similar pattern to the above ViewerToggleAction classes
  50         Action(
  51             id=CommandId.TOGGLE_LAYER_TOOLTIPS,
  52             title=CommandId.TOGGLE_LAYER_TOOLTIPS.command_title,
  53             menus=[
  54                 {
  55                     'id': MenuId.MENUBAR_VIEW,
  56                     'group': MenuGroup.RENDER,
  57                     'order': 10,
  58                 }
  59             ],
  60             callback=_tooltip_visibility_toggle,
  61             toggled=ToggleRule(get_current=_get_current_tooltip_visibility),
  62         ),
  63     ]
  64 )
  65
  ```
  --- END FILES ---
  
  Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.
  
  Here is an example:
  
  ```diff
  diff --git a/examples/server_async.py b/examples/server_async.py
  --- a/examples/server_async.py
  +++ b/examples/server_async.py
  @@ -313,4 +313,4 @@
   
   
   if __name__ == "__main__":
  -    asyncio.run(run_async_server("."), debug=True)
  +    asyncio.run(run_async_server(), debug=True)
  diff --git a/examples/server_sync.py b/examples/server_sync.py
  --- a/examples/server_sync.py
  +++ b/examples/server_sync.py
  @@ -313,5 +313,5 @@
   
   
   if __name__ == "__main__":
  -    server = run_sync_server(".")
  +    server = run_sync_server()
       server.shutdown()
  
  ```
  
golden_diff: diff --git a/napari/_app_model/actions/_view_actions.py b/napari/_app_model/actions/_view_actions.py
  deleted file mode 100644
  --- a/napari/_app_model/actions/_view_actions.py
  +++ /dev/null
  @@ -1,64 +0,0 @@
  -"""Actions related to the 'View' menu that do not require Qt.
  -
  -View actions that do require Qt should go in
  -`napari/_qt/_qapp_model/qactions/_view.py`.
  -"""
  -
  -from app_model.types import Action, ToggleRule
  -
  -from napari._app_model.actions._toggle_action import ViewerToggleAction
  -from napari._app_model.constants import CommandId, MenuGroup, MenuId
  -from napari.settings import get_settings
  -
  -VIEW_ACTIONS: list[Action] = []
  -MENUID_DICT = {'axes': MenuId.VIEW_AXES, 'scale_bar': MenuId.VIEW_SCALEBAR}
  -
  -for cmd, viewer_attr, sub_attr in (
  -    (CommandId.TOGGLE_VIEWER_AXES, 'axes', 'visible'),
  -    (CommandId.TOGGLE_VIEWER_AXES_COLORED, 'axes', 'colored'),
  -    (CommandId.TOGGLE_VIEWER_AXES_LABELS, 'axes', 'labels'),
  -    (CommandId.TOGGLE_VIEWER_AXES_DASHED, 'axes', 'dashed'),
  -    (CommandId.TOGGLE_VIEWER_AXES_ARROWS, 'axes', 'arrows'),
  -    (CommandId.TOGGLE_VIEWER_SCALE_BAR, 'scale_bar', 'visible'),
  -    (CommandId.TOGGLE_VIEWER_SCALE_BAR_COLORED, 'scale_bar', 'colored'),
  -    (CommandId.TOGGLE_VIEWER_SCALE_BAR_TICKS, 'scale_bar', 'ticks'),
  -):
  -    VIEW_ACTIONS.append(
  -        ViewerToggleAction(
  -            id=cmd,
  -            title=cmd.command_title,
  -            viewer_attribute=viewer_attr,
  -            sub_attribute=sub_attr,
  -            menus=[{'id': MENUID_DICT[viewer_attr]}],
  -        )
  -    )
  -
  -
  -def _tooltip_visibility_toggle() -> None:
  -    settings = get_settings().appearance
  -    settings.layer_tooltip_visibility = not settings.layer_tooltip_visibility
  -
  -
  -def _get_current_tooltip_visibility() -> bool:
  -    return get_settings().appearance.layer_tooltip_visibility
  -
  -
  -VIEW_ACTIONS.extend(
  -    [
  -        # TODO: this could be made into a toggle setting Action subclass
  -        # using a similar pattern to the above ViewerToggleAction classes
  -        Action(
  -            id=CommandId.TOGGLE_LAYER_TOOLTIPS,
  -            title=CommandId.TOGGLE_LAYER_TOOLTIPS.command_title,
  -            menus=[
  -                {
  -                    'id': MenuId.MENUBAR_VIEW,
  -                    'group': MenuGroup.RENDER,
  -                    'order': 10,
  -                }
  -            ],
  -            callback=_tooltip_visibility_toggle,
  -            toggled=ToggleRule(get_current=_get_current_tooltip_visibility),
  -        ),
  -    ]
  -)
  
verification_info: {"golden_diff": "diff --git a/napari/_app_model/actions/_view_actions.py b/napari/_app_model/actions/_view_actions.py\ndeleted file mode 100644\n--- a/napari/_app_model/actions/_view_actions.py\n+++ /dev/null\n@@ -1,64 +0,0 @@\n-\"\"\"Actions related to the 'View' menu that do not require Qt.\n-\n-View actions that do require Qt should go in\n-`napari/_qt/_qapp_model/qactions/_view.py`.\n-\"\"\"\n-\n-from app_model.types import Action, ToggleRule\n-\n-from napari._app_model.actions._toggle_action import ViewerToggleAction\n-from napari._app_model.constants import CommandId, MenuGroup, MenuId\n-from napari.settings import get_settings\n-\n-VIEW_ACTIONS: list[Action] = []\n-MENUID_DICT = {'axes': MenuId.VIEW_AXES, 'scale_bar': MenuId.VIEW_SCALEBAR}\n-\n-for cmd, viewer_attr, sub_attr in (\n-    (CommandId.TOGGLE_VIEWER_AXES, 'axes', 'visible'),\n-    (CommandId.TOGGLE_VIEWER_AXES_COLORED, 'axes', 'colored'),\n-    (CommandId.TOGGLE_VIEWER_AXES_LABELS, 'axes', 'labels'),\n-    (CommandId.TOGGLE_VIEWER_AXES_DASHED, 'axes', 'dashed'),\n-    (CommandId.TOGGLE_VIEWER_AXES_ARROWS, 'axes', 'arrows'),\n-    (CommandId.TOGGLE_VIEWER_SCALE_BAR, 'scale_bar', 'visible'),\n-    (CommandId.TOGGLE_VIEWER_SCALE_BAR_COLORED, 'scale_bar', 'colored'),\n-    (CommandId.TOGGLE_VIEWER_SCALE_BAR_TICKS, 'scale_bar', 'ticks'),\n-):\n-    VIEW_ACTIONS.append(\n-        ViewerToggleAction(\n-            id=cmd,\n-            title=cmd.command_title,\n-            viewer_attribute=viewer_attr,\n-            sub_attribute=sub_attr,\n-            menus=[{'id': MENUID_DICT[viewer_attr]}],\n-        )\n-    )\n-\n-\n-def _tooltip_visibility_toggle() -> None:\n-    settings = get_settings().appearance\n-    settings.layer_tooltip_visibility = not settings.layer_tooltip_visibility\n-\n-\n-def _get_current_tooltip_visibility() -> bool:\n-    return get_settings().appearance.layer_tooltip_visibility\n-\n-\n-VIEW_ACTIONS.extend(\n-    [\n-        # TODO: this could be made into a toggle setting Action subclass\n-        # using a similar pattern to the above ViewerToggleAction classes\n-        Action(\n-            id=CommandId.TOGGLE_LAYER_TOOLTIPS,\n-            title=CommandId.TOGGLE_LAYER_TOOLTIPS.command_title,\n-            menus=[\n-                {\n-                    'id': MenuId.MENUBAR_VIEW,\n-                    'group': MenuGroup.RENDER,\n-                    'order': 10,\n-                }\n-            ],\n-            callback=_tooltip_visibility_toggle,\n-            toggled=ToggleRule(get_current=_get_current_tooltip_visibility),\n-        ),\n-    ]\n-)\n", "issue": "Test vectors\n# Description\r\nThis PR adds tests for the vectors layer, improves the doc strings and cleans up the code a tiny bit, but doesn't change any functionality.\r\n\r\nOne question is - should the input parameters be \r\n`edge_width`, `edge_color`, and `length` for the width, color, and the multiplicative length factor for the vectors or should they be something else. They used to just be `width`, `color`, and `length` but I added `edge_` to make the parameters the same as for the `points` and `shapes` layer, though you could argue that for the `points` layer the parameters do different things and that in the vectors layer we don't have a `face` and an `edge` so it is just confusing. I'm open to suggestions - personally I like the consistency - but we can change it. Thoughts @bryantChhun @kevinyamauchi @jni?\r\n \r\n## Type of change\r\n<!-- Please delete options that are not relevant. -->\r\n- [x] Bug-fix (non-breaking change which fixes an issue)\r\n\r\n# How has this been tested?\r\n<!-- Please describe the tests that you ran to verify your changes. -->\r\n- [x] adds `napari/layers/vectors/tests/test_vectors.py`\r\n\r\n## Final checklist:\r\n- [x] My PR is the minimum possible work for the desired functionality\r\n- [x] I have commented my code, particularly in hard-to-understand areas\r\n- [x] I have made corresponding changes to the documentation\r\n- [x] I have added tests that prove my fix is effective or that my feature works\r\n\n", "before_files": [{"content": "\"\"\"Actions related to the 'View' menu that do not require Qt.\n\nView actions that do require Qt should go in\n`napari/_qt/_qapp_model/qactions/_view.py`.\n\"\"\"\n\nfrom app_model.types import Action, ToggleRule\n\nfrom napari._app_model.actions._toggle_action import ViewerToggleAction\nfrom napari._app_model.constants import CommandId, MenuGroup, MenuId\nfrom napari.settings import get_settings\n\nVIEW_ACTIONS: list[Action] = []\nMENUID_DICT = {'axes': MenuId.VIEW_AXES, 'scale_bar': MenuId.VIEW_SCALEBAR}\n\nfor cmd, viewer_attr, sub_attr in (\n    (CommandId.TOGGLE_VIEWER_AXES, 'axes', 'visible'),\n    (CommandId.TOGGLE_VIEWER_AXES_COLORED, 'axes', 'colored'),\n    (CommandId.TOGGLE_VIEWER_AXES_LABELS, 'axes', 'labels'),\n    (CommandId.TOGGLE_VIEWER_AXES_DASHED, 'axes', 'dashed'),\n    (CommandId.TOGGLE_VIEWER_AXES_ARROWS, 'axes', 'arrows'),\n    (CommandId.TOGGLE_VIEWER_SCALE_BAR, 'scale_bar', 'visible'),\n    (CommandId.TOGGLE_VIEWER_SCALE_BAR_COLORED, 'scale_bar', 'colored'),\n    (CommandId.TOGGLE_VIEWER_SCALE_BAR_TICKS, 'scale_bar', 'ticks'),\n):\n    VIEW_ACTIONS.append(\n        ViewerToggleAction(\n            id=cmd,\n            title=cmd.command_title,\n            viewer_attribute=viewer_attr,\n            sub_attribute=sub_attr,\n            menus=[{'id': MENUID_DICT[viewer_attr]}],\n        )\n    )\n\n\ndef _tooltip_visibility_toggle() -> None:\n    settings = get_settings().appearance\n    settings.layer_tooltip_visibility = not settings.layer_tooltip_visibility\n\n\ndef _get_current_tooltip_visibility() -> bool:\n    return get_settings().appearance.layer_tooltip_visibility\n\n\nVIEW_ACTIONS.extend(\n    [\n        # TODO: this could be made into a toggle setting Action subclass\n        # using a similar pattern to the above ViewerToggleAction classes\n        Action(\n            id=CommandId.TOGGLE_LAYER_TOOLTIPS,\n            title=CommandId.TOGGLE_LAYER_TOOLTIPS.command_title,\n            menus=[\n                {\n                    'id': MenuId.MENUBAR_VIEW,\n                    'group': MenuGroup.RENDER,\n                    'order': 10,\n                }\n            ],\n            callback=_tooltip_visibility_toggle,\n            toggled=ToggleRule(get_current=_get_current_tooltip_visibility),\n        ),\n    ]\n)\n", "path": "napari/_app_model/actions/_view_actions.py"}], "after_files": [{"content": null, "path": "napari/_app_model/actions/_view_actions.py"}]}