diff --git a/.coverage b/.coverage
index 16dd820174b832da58b7fb91761d86381b6321b0..d9c83edf97dda8c5368173435ccf70ac71180371 100644
Binary files a/.coverage and b/.coverage differ
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index bb27e39c444d5d9932e5912a20aacc912988ba9d..4bcd1a73b6ea0c7a8679a72e6fe128a075cc053a 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -4,56 +4,12 @@
     <list default="true" id="ce009ef4-7b11-4f12-b786-bce3842c65e3" name="Default Changelist" comment="">
       <change beforePath="$PROJECT_DIR$/.coverage" beforeDir="false" afterPath="$PROJECT_DIR$/.coverage" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coverage_html_report/index.html" beforeDir="false" afterPath="$PROJECT_DIR$/coverage_html_report/index.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coverage_html_report/navipy___init___py.html" beforeDir="false" afterPath="$PROJECT_DIR$/coverage_html_report/navipy___init___py.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coverage_html_report/navipy_arenatools___init___py.html" beforeDir="false" afterPath="$PROJECT_DIR$/coverage_html_report/navipy_arenatools___init___py.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coverage_html_report/navipy_arenatools_cam_calib_py.html" beforeDir="false" afterPath="$PROJECT_DIR$/coverage_html_report/navipy_arenatools_cam_calib_py.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coverage_html_report/navipy_arenatools_cam_dlt_py.html" beforeDir="false" afterPath="$PROJECT_DIR$/coverage_html_report/navipy_arenatools_cam_dlt_py.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coverage_html_report/navipy_arenatools_patterns_py.html" beforeDir="false" afterPath="$PROJECT_DIR$/coverage_html_report/navipy_arenatools_patterns_py.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coverage_html_report/navipy_arenatools_triangulate_py.html" beforeDir="false" afterPath="$PROJECT_DIR$/coverage_html_report/navipy_arenatools_triangulate_py.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coverage_html_report/navipy_comparing___init___py.html" beforeDir="false" afterPath="$PROJECT_DIR$/coverage_html_report/navipy_comparing___init___py.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coverage_html_report/navipy_comparing_test_py.html" beforeDir="false" afterPath="$PROJECT_DIR$/coverage_html_report/navipy_comparing_test_py.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coverage_html_report/navipy_database___init___py.html" beforeDir="false" afterPath="$PROJECT_DIR$/coverage_html_report/navipy_database___init___py.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coverage_html_report/navipy_database_test_py.html" beforeDir="false" afterPath="$PROJECT_DIR$/coverage_html_report/navipy_database_test_py.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coverage_html_report/navipy_database_tools_py.html" beforeDir="false" afterPath="$PROJECT_DIR$/coverage_html_report/navipy_database_tools_py.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coverage_html_report/navipy_errorprop___init___py.html" beforeDir="false" afterPath="$PROJECT_DIR$/coverage_html_report/navipy_errorprop___init___py.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coverage_html_report/navipy_errorprop_test_py.html" beforeDir="false" afterPath="$PROJECT_DIR$/coverage_html_report/navipy_errorprop_test_py.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coverage_html_report/navipy_io___init___py.html" beforeDir="false" afterPath="$PROJECT_DIR$/coverage_html_report/navipy_io___init___py.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coverage_html_report/navipy_io_ivfile_py.html" beforeDir="false" afterPath="$PROJECT_DIR$/coverage_html_report/navipy_io_ivfile_py.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coverage_html_report/navipy_io_opencv_py.html" beforeDir="false" afterPath="$PROJECT_DIR$/coverage_html_report/navipy_io_opencv_py.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coverage_html_report/navipy_maths___init___py.html" beforeDir="false" afterPath="$PROJECT_DIR$/coverage_html_report/navipy_maths___init___py.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coverage_html_report/navipy_maths_constants_py.html" beforeDir="false" afterPath="$PROJECT_DIR$/coverage_html_report/navipy_maths_constants_py.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coverage_html_report/navipy_maths_coordinates_py.html" beforeDir="false" afterPath="$PROJECT_DIR$/coverage_html_report/navipy_maths_coordinates_py.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coverage_html_report/navipy_maths_euler_py.html" beforeDir="false" afterPath="$PROJECT_DIR$/coverage_html_report/navipy_maths_euler_py.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coverage_html_report/navipy_maths_homogeneous_transformations_py.html" beforeDir="false" afterPath="$PROJECT_DIR$/coverage_html_report/navipy_maths_homogeneous_transformations_py.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coverage_html_report/navipy_maths_quaternion_py.html" beforeDir="false" afterPath="$PROJECT_DIR$/coverage_html_report/navipy_maths_quaternion_py.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coverage_html_report/navipy_maths_random_py.html" beforeDir="false" afterPath="$PROJECT_DIR$/coverage_html_report/navipy_maths_random_py.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coverage_html_report/navipy_maths_tools_py.html" beforeDir="false" afterPath="$PROJECT_DIR$/coverage_html_report/navipy_maths_tools_py.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coverage_html_report/navipy_models___init___py.html" beforeDir="false" afterPath="$PROJECT_DIR$/coverage_html_report/navipy_models___init___py.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coverage_html_report/navipy_models_dewar_2014_py.html" beforeDir="false" afterPath="$PROJECT_DIR$/coverage_html_report/navipy_models_dewar_2014_py.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coverage_html_report/navipy_models_hafner_2000_py.html" beforeDir="false" afterPath="$PROJECT_DIR$/coverage_html_report/navipy_models_hafner_2000_py.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coverage_html_report/navipy_models_irdf_2003_py.html" beforeDir="false" afterPath="$PROJECT_DIR$/coverage_html_report/navipy_models_irdf_2003_py.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coverage_html_report/navipy_processing___init___py.html" beforeDir="false" afterPath="$PROJECT_DIR$/coverage_html_report/navipy_processing___init___py.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coverage_html_report/navipy_processing_mcode_py.html" beforeDir="false" afterPath="$PROJECT_DIR$/coverage_html_report/navipy_processing_mcode_py.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coverage_html_report/navipy_processing_pcode_py.html" beforeDir="false" afterPath="$PROJECT_DIR$/coverage_html_report/navipy_processing_pcode_py.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coverage_html_report/navipy_processing_test_py.html" beforeDir="false" afterPath="$PROJECT_DIR$/coverage_html_report/navipy_processing_test_py.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coverage_html_report/navipy_scene_py.html" beforeDir="false" afterPath="$PROJECT_DIR$/coverage_html_report/navipy_scene_py.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coverage_html_report/navipy_scripts___init___py.html" beforeDir="false" afterPath="$PROJECT_DIR$/coverage_html_report/navipy_scripts___init___py.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coverage_html_report/navipy_scripts_check_blender_versions_py.html" beforeDir="false" afterPath="$PROJECT_DIR$/coverage_html_report/navipy_scripts_check_blender_versions_py.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coverage_html_report/navipy_scripts_config_matplotlib_server_py.html" beforeDir="false" afterPath="$PROJECT_DIR$/coverage_html_report/navipy_scripts_config_matplotlib_server_py.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coverage_html_report/navipy_scripts_dlt_calibrator_py.html" beforeDir="false" afterPath="$PROJECT_DIR$/coverage_html_report/navipy_scripts_dlt_calibrator_py.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coverage_html_report/navipy_sensors___init___py.html" beforeDir="false" afterPath="$PROJECT_DIR$/coverage_html_report/navipy_sensors___init___py.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coverage_html_report/navipy_sensors_renderer_py.html" beforeDir="false" afterPath="$PROJECT_DIR$/coverage_html_report/navipy_sensors_renderer_py.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coverage_html_report/navipy_tools___init___py.html" beforeDir="false" afterPath="$PROJECT_DIR$/coverage_html_report/navipy_tools___init___py.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coverage_html_report/navipy_tools_plots_py.html" beforeDir="false" afterPath="$PROJECT_DIR$/coverage_html_report/navipy_tools_plots_py.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coverage_html_report/navipy_trajectories___init___py.html" beforeDir="false" afterPath="$PROJECT_DIR$/coverage_html_report/navipy_trajectories___init___py.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coverage_html_report/navipy_trajectories_random_py.html" beforeDir="false" afterPath="$PROJECT_DIR$/coverage_html_report/navipy_trajectories_random_py.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coverage_html_report/navipy_trajectories_tools_py.html" beforeDir="false" afterPath="$PROJECT_DIR$/coverage_html_report/navipy_trajectories_tools_py.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coverage_html_report/navipy_trajectories_transformations_py.html" beforeDir="false" afterPath="$PROJECT_DIR$/coverage_html_report/navipy_trajectories_transformations_py.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coverage_html_report/navipy_trajectories_triangle_py.html" beforeDir="false" afterPath="$PROJECT_DIR$/coverage_html_report/navipy_trajectories_triangle_py.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coverage_html_report/status.json" beforeDir="false" afterPath="$PROJECT_DIR$/coverage_html_report/status.json" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/navipy/comparing/test.py" beforeDir="false" afterPath="$PROJECT_DIR$/navipy/comparing/test.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/navipy/database/test.py" beforeDir="false" afterPath="$PROJECT_DIR$/navipy/database/test.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/navipy/errorprop/test.py" beforeDir="false" afterPath="$PROJECT_DIR$/navipy/errorprop/test.py" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/navipy/maths/test_coordinates.py" beforeDir="false" afterPath="$PROJECT_DIR$/navipy/maths/test_coordinates.py" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/navipy/processing/test.py" beforeDir="false" afterPath="$PROJECT_DIR$/navipy/processing/test.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/navipy/processing/test_mcode.py" beforeDir="false" afterPath="$PROJECT_DIR$/navipy/processing/test_mcode.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/navipy/processing/test_opticflow.py" beforeDir="false" afterPath="$PROJECT_DIR$/navipy/processing/test_opticflow.py" afterDir="false" />
     </list>
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
     <option name="SHOW_DIALOG" value="false" />
@@ -68,19 +24,34 @@
   <component name="FileEditorManager">
     <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/navipy/maths/tools.py">
+        <entry file="file://$PROJECT_DIR$/navipy/maths/test_euler.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="285">
-              <caret line="19" column="29" selection-start-line="19" selection-start-column="28" selection-end-line="19" selection-end-column="29" />
+            <state relative-caret-position="1380">
+              <caret line="98" column="44" selection-start-line="98" selection-start-column="44" selection-end-line="98" selection-end-column="44" />
+              <folding>
+                <element signature="e#0#18#0" expanded="true" />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/navipy/maths/test_coordinates.py">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="375">
+              <caret line="29" column="14" selection-start-line="29" selection-start-column="14" selection-end-line="29" selection-end-column="14" />
+              <folding>
+                <element signature="e#0#18#0" expanded="true" />
+              </folding>
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/navipy/comparing/test.py">
+        <entry file="file://$PROJECT_DIR$/navipy/processing/test.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="-116">
-              <caret line="164" column="16" selection-start-line="164" selection-start-column="13" selection-end-line="164" selection-end-column="16" />
+            <state relative-caret-position="5715">
+              <caret line="387" column="42" selection-start-line="387" selection-start-column="42" selection-end-line="387" selection-end-column="42" />
               <folding>
                 <element signature="e#0#15#0" expanded="true" />
               </folding>
@@ -88,11 +59,28 @@
           </provider>
         </entry>
       </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/navipy/processing/mcode.py">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="2955">
+              <caret line="206" column="33" selection-start-line="206" selection-start-column="23" selection-end-line="206" selection-end-column="33" />
+              <folding>
+                <element signature="e#20#66#0" expanded="true" />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/navipy/processing/__init__.py">
+          <provider selected="true" editor-type-id="text-editor" />
+        </entry>
+      </file>
       <file pinned="false" current-in-tab="true">
-        <entry file="file://$PROJECT_DIR$/navipy/processing/test.py">
+        <entry file="file://$PROJECT_DIR$/navipy/processing/test_mcode.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="279">
-              <caret line="431" column="8" lean-forward="true" selection-start-line="431" selection-start-column="8" selection-end-line="431" selection-end-column="8" />
+            <state relative-caret-position="558">
+              <caret line="546" lean-forward="true" selection-start-line="546" selection-end-line="546" />
               <folding>
                 <element signature="e#0#15#0" expanded="true" />
               </folding>
@@ -115,7 +103,6 @@
       <find>velo</find>
       <find>veloc</find>
       <find>angle_ra</find>
-      <find>optic</find>
       <find>optic_</find>
       <find>multip</find>
       <find>eular.mat</find>
@@ -125,6 +112,17 @@
       <find>from_matr</find>
       <find>sim</find>
       <find>skyline</find>
+      <find>angle</find>
+      <find>angle_rate_matrix</find>
+      <find>assert</find>
+      <find>from_quaternion</find>
+      <find>viewing</find>
+      <find>angular</find>
+      <find>__viewing</find>
+      <find>posid</find>
+      <find>optic</find>
+      <find>pcode</find>
+      <find>optic_flow</find>
     </findStrings>
   </component>
   <component name="Git.Settings">
@@ -137,26 +135,29 @@
         <option value="$PROJECT_DIR$/navipy/maths/tools.py" />
         <option value="$PROJECT_DIR$/navipy/maths/test_tools.py" />
         <option value="$PROJECT_DIR$/navipy/maths/test_homogeneous_transformations.py" />
-        <option value="$PROJECT_DIR$/navipy/maths/test_euler.py" />
         <option value="$PROJECT_DIR$/navipy/maths/test_random.py" />
-        <option value="$PROJECT_DIR$/navipy/maths/test_coordinates.py" />
         <option value="$PROJECT_DIR$/navipy/maths/test_quaternion.py" />
-        <option value="$PROJECT_DIR$/navipy/comparing/test.py" />
         <option value="$PROJECT_DIR$/navipy/processing/test.py" />
+        <option value="$PROJECT_DIR$/navipy/processing/test_opticflow.py" />
+        <option value="$PROJECT_DIR$/navipy/database/test.py" />
+        <option value="$PROJECT_DIR$/navipy/errorprop/test.py" />
+        <option value="$PROJECT_DIR$/navipy/comparing/test.py" />
+        <option value="$PROJECT_DIR$/navipy/maths/test_coordinates.py" />
+        <option value="$PROJECT_DIR$/navipy/maths/test_euler.py" />
+        <option value="$PROJECT_DIR$/navipy/processing/test_mcode.py" />
       </list>
     </option>
   </component>
-  <component name="ProjectFrameBounds">
+  <component name="ProjectFrameBounds" extendedState="6">
     <option name="y" value="23" />
     <option name="width" value="1440" />
-    <option name="height" value="857" />
+    <option name="height" value="877" />
   </component>
   <component name="ProjectView">
     <navigator proportions="" version="1">
       <foldersAlwaysOnTop value="true" />
     </navigator>
     <panes>
-      <pane id="Scope" />
       <pane id="ProjectPane">
         <subPane>
           <expand>
@@ -175,23 +176,35 @@
               <item name="navipy" type="462c0819:PsiDirectoryNode" />
               <item name="comparing" type="462c0819:PsiDirectoryNode" />
             </path>
+            <path>
+              <item name="navipy" type="b2602c69:ProjectViewProjectNode" />
+              <item name="navipy" type="462c0819:PsiDirectoryNode" />
+              <item name="navipy" type="462c0819:PsiDirectoryNode" />
+              <item name="maths" type="462c0819:PsiDirectoryNode" />
+            </path>
             <path>
               <item name="navipy" type="b2602c69:ProjectViewProjectNode" />
               <item name="navipy" type="462c0819:PsiDirectoryNode" />
               <item name="navipy" type="462c0819:PsiDirectoryNode" />
               <item name="processing" type="462c0819:PsiDirectoryNode" />
             </path>
+            <path>
+              <item name="navipy" type="b2602c69:ProjectViewProjectNode" />
+              <item name="navipy" type="462c0819:PsiDirectoryNode" />
+              <item name="orientation" type="462c0819:PsiDirectoryNode" />
+            </path>
           </expand>
           <select />
         </subPane>
       </pane>
       <pane id="PackagesPane" />
+      <pane id="Scope" />
     </panes>
   </component>
   <component name="PropertiesComponent">
     <property name="WebServerToolWindowFactoryState" value="false" />
     <property name="aspect.path.notification.shown" value="true" />
-    <property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1550728065505" />
+    <property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1556041758388" />
     <property name="last_opened_file_path" value="$PROJECT_DIR$" />
     <property name="project.structure.last.edited" value="Project" />
     <property name="project.structure.proportion" value="0.0" />
@@ -313,6 +326,8 @@
       <workItem from="1548409948254" duration="34068000" />
       <workItem from="1549035108413" duration="3076000" />
       <workItem from="1549955192949" duration="12109000" />
+      <workItem from="1555782958578" duration="23286000" />
+      <workItem from="1556200784972" duration="562000" />
     </task>
     <servers />
   </component>
@@ -349,13 +364,13 @@
     </history-entry>
   </component>
   <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="69220000" />
+    <option name="totallyTimeSpent" value="128244000" />
   </component>
   <component name="ToolWindowManager">
-    <frame x="0" y="23" width="1440" height="857" extended-state="0" />
+    <frame x="0" y="23" width="1440" height="877" extended-state="6" />
     <editor active="true" />
     <layout>
-      <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.25679544" />
+      <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.26466382" />
       <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
       <window_info id="Image Layers" order="2" />
       <window_info id="Designer" order="3" />
@@ -364,7 +379,7 @@
       <window_info id="Favorites" order="6" side_tool="true" />
       <window_info anchor="bottom" id="Message" order="0" />
       <window_info anchor="bottom" id="Find" order="1" />
-      <window_info active="true" anchor="bottom" id="Run" order="2" visible="true" weight="0.32941177" />
+      <window_info anchor="bottom" id="Run" order="2" weight="0.32941177" />
       <window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
       <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
       <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
@@ -397,9 +412,6 @@
     <entry file="file://$PROJECT_DIR$/navipy/trajectories/__init__.py">
       <provider selected="true" editor-type-id="text-editor" />
     </entry>
-    <entry file="file://$PROJECT_DIR$/navipy/processing/mcode.py">
-      <provider selected="true" editor-type-id="text-editor" />
-    </entry>
     <entry file="file://$PROJECT_DIR$/navipy/trajectories/test_markers.py">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="75">
@@ -417,156 +429,183 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/navipy/processing/pcode.py">
-      <provider selected="true" editor-type-id="text-editor" />
-    </entry>
-    <entry file="file://$PROJECT_DIR$/navipy/processing/__init__.py">
-      <provider selected="true" editor-type-id="text-editor" />
-    </entry>
     <entry file="file://$PROJECT_DIR$/navipy/maths/constants.py">
       <provider selected="true" editor-type-id="text-editor" />
     </entry>
-    <entry file="file://$PROJECT_DIR$/navipy/errorprop/test.py">
+    <entry file="file://$PROJECT_DIR$/navipy/trajectories/triangle.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state>
+        <state relative-caret-position="75">
+          <caret line="8" column="6" selection-start-line="8" selection-start-column="6" selection-end-line="8" selection-end-column="6" />
           <folding>
-            <element signature="e#0#15#0" expanded="true" />
+            <element signature="e#8#26#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/navipy/maths/euler.py">
+    <entry file="file://$PROJECT_DIR$/navipy/maths/coordinates.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="3360">
-          <caret line="228" column="20" selection-start-line="228" selection-start-column="20" selection-end-line="228" selection-end-column="20" />
+        <state relative-caret-position="-104">
+          <caret line="46" selection-start-line="46" selection-end-line="46" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/navipy/maths/quaternion.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="272">
+          <caret line="163" selection-start-line="163" selection-end-line="168" selection-end-column="12" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/navipy/maths/test_homogeneous_transformations.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="1302">
+          <caret line="139" column="18" selection-start-line="139" selection-start-column="13" selection-end-line="139" selection-end-column="18" />
           <folding>
-            <element signature="e#0#18#0" expanded="true" />
+            <element signature="e#0#15#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/navipy/trajectories/triangle.py">
+    <entry file="file://$PROJECT_DIR$/navipy/maths/test_quaternion.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="75">
-          <caret line="8" column="6" selection-start-line="8" selection-start-column="6" selection-end-line="8" selection-end-column="6" />
+        <state relative-caret-position="294">
+          <caret line="31" column="42" lean-forward="true" selection-start-line="31" selection-start-column="42" selection-end-line="31" selection-end-column="42" />
           <folding>
-            <element signature="e#8#26#0" expanded="true" />
+            <element signature="e#0#15#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/navipy/maths/coordinates.py">
+    <entry file="file://$PROJECT_DIR$/navipy/maths/test_tools.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-104">
-          <caret line="46" selection-start-line="46" selection-end-line="46" />
+        <state relative-caret-position="285">
+          <caret line="19" column="57" selection-start-line="19" selection-start-column="57" selection-end-line="19" selection-end-column="57" />
+          <folding>
+            <element signature="e#0#18#0" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/navipy/processing/test_mcode.py">
+    <entry file="file://$PROJECT_DIR$/navipy/maths/tools.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state>
-          <caret column="4" selection-start-column="4" selection-end-column="4" />
+        <state relative-caret-position="285">
+          <caret line="19" column="29" selection-start-line="19" selection-start-column="28" selection-end-line="19" selection-end-column="29" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/navipy/processing/test_opticflow.py">
+    <entry file="file://$PROJECT_DIR$/navipy/database/__init__.py">
+      <provider selected="true" editor-type-id="text-editor" />
+    </entry>
+    <entry file="file://$PROJECT_DIR$/navipy/processing/pcode.py">
+      <provider selected="true" editor-type-id="text-editor" />
+    </entry>
+    <entry file="file://$PROJECT_DIR$/navipy/maths/euler.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-314">
-          <caret line="67" column="24" selection-start-line="67" selection-start-column="18" selection-end-line="67" selection-end-column="24" />
+        <state relative-caret-position="3360">
+          <caret line="228" column="20" selection-start-line="228" selection-start-column="20" selection-end-line="228" selection-end-column="20" />
           <folding>
-            <element signature="e#0#15#0" expanded="true" />
+            <element signature="e#0#18#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/navipy/maths/quaternion.py">
+    <entry file="file://$PROJECT_DIR$/navipy/maths/test_random.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="272">
-          <caret line="163" selection-start-line="163" selection-end-line="168" selection-end-column="12" />
+        <state relative-caret-position="285">
+          <caret line="19" selection-start-line="19" selection-end-line="19" />
+          <folding>
+            <element signature="e#0#15#0" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/navipy/maths/test_random.py">
+    <entry file="file://$PROJECT_DIR$/navipy/database/test.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="285">
-          <caret line="19" lean-forward="true" selection-start-line="19" selection-end-line="19" />
+        <state relative-caret-position="-2985">
+          <caret line="211" column="35" selection-start-line="211" selection-start-column="35" selection-end-line="211" selection-end-column="35" />
           <folding>
             <element signature="e#0#15#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/navipy/maths/test_homogeneous_transformations.py">
+    <entry file="file://$PROJECT_DIR$/navipy/errorprop/test.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="1302">
-          <caret line="139" column="18" selection-start-line="139" selection-start-column="13" selection-end-line="139" selection-end-column="18" />
+        <state relative-caret-position="598">
+          <caret line="54" selection-start-line="54" selection-end-line="54" />
           <folding>
             <element signature="e#0#15#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/navipy/maths/test_quaternion.py">
+    <entry file="file://$PROJECT_DIR$/navipy/processing/test_opticflow.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="294">
-          <caret line="31" column="42" lean-forward="true" selection-start-line="31" selection-start-column="42" selection-end-line="31" selection-end-column="42" />
+        <state relative-caret-position="645">
+          <caret line="143" selection-start-line="143" selection-end-line="143" />
           <folding>
             <element signature="e#0#15#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/navipy/maths/test_coordinates.py">
+    <entry file="file://$PROJECT_DIR$/navipy/comparing/test.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="331">
-          <caret line="33" selection-start-line="33" selection-end-line="33" />
+        <state relative-caret-position="598">
+          <caret line="315" column="105" selection-start-line="315" selection-start-column="105" selection-end-line="315" selection-end-column="105" />
           <folding>
-            <element signature="e#0#18#0" expanded="true" />
+            <element signature="e#0#15#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/navipy/maths/test_tools.py">
+    <entry file="file://$PROJECT_DIR$/navipy/maths/test_euler.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="285">
-          <caret line="19" column="57" selection-start-line="19" selection-start-column="57" selection-end-line="19" selection-end-column="57" />
+        <state relative-caret-position="1380">
+          <caret line="98" column="44" selection-start-line="98" selection-start-column="44" selection-end-line="98" selection-end-column="44" />
           <folding>
             <element signature="e#0#18#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/navipy/maths/test_euler.py">
+    <entry file="file://$PROJECT_DIR$/navipy/maths/test_coordinates.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="436">
-          <caret line="133" column="43" selection-start-line="133" selection-start-column="43" selection-end-line="133" selection-end-column="43" />
+        <state relative-caret-position="375">
+          <caret line="29" column="14" selection-start-line="29" selection-start-column="14" selection-end-line="29" selection-end-column="14" />
           <folding>
             <element signature="e#0#18#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/navipy/maths/tools.py">
+    <entry file="file://$PROJECT_DIR$/navipy/processing/test.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="285">
-          <caret line="19" column="29" selection-start-line="19" selection-start-column="28" selection-end-line="19" selection-end-column="29" />
+        <state relative-caret-position="5715">
+          <caret line="387" column="42" selection-start-line="387" selection-start-column="42" selection-end-line="387" selection-end-column="42" />
+          <folding>
+            <element signature="e#0#15#0" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/navipy/comparing/test.py">
+    <entry file="file://$PROJECT_DIR$/navipy/processing/mcode.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-116">
-          <caret line="164" column="16" selection-start-line="164" selection-start-column="13" selection-end-line="164" selection-end-column="16" />
+        <state relative-caret-position="2955">
+          <caret line="206" column="33" selection-start-line="206" selection-start-column="23" selection-end-line="206" selection-end-column="33" />
           <folding>
-            <element signature="e#0#15#0" expanded="true" />
+            <element signature="e#20#66#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/navipy/processing/test.py">
+    <entry file="file://$PROJECT_DIR$/navipy/processing/__init__.py">
+      <provider selected="true" editor-type-id="text-editor" />
+    </entry>
+    <entry file="file://$PROJECT_DIR$/navipy/processing/test_mcode.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="279">
-          <caret line="431" column="8" lean-forward="true" selection-start-line="431" selection-start-column="8" selection-end-line="431" selection-end-column="8" />
+        <state relative-caret-position="558">
+          <caret line="546" lean-forward="true" selection-start-line="546" selection-end-line="546" />
           <folding>
             <element signature="e#0#15#0" expanded="true" />
           </folding>
diff --git a/navipy/comparing/test.py b/navipy/comparing/test.py
index b7e28353cd8d0032d5e762aadc335676e1891635..a27b9c9543309f64f74984658288084d8a083eab 100644
--- a/navipy/comparing/test.py
+++ b/navipy/comparing/test.py
@@ -312,6 +312,11 @@ class TestCase(unittest.TestCase):
             self.assertFalse(np.any(np.isnan(vec)))
             self.assertTrue(is_numeric_array(vec))
 
+    def test_weighted_irdf(self):
+        for i, j, k in [([1,2,3],7, [4.0,3, 2.0]), ([3.0,'w',4],'w', ['w', 7.0, 4]), (3, [3.0, 2, 8.0], 7)]:
+            with self.assertRaises(TypeError):
+                comparing.weighted_irdf(i,j,k)
+
 
 if __name__ == '__main__':
     unittest.main()
diff --git a/navipy/database/test.py b/navipy/database/test.py
index 416765f0094d484ddfce21bfbcd39fe1e31e9c18..1a5e0e0d0c10ef7c5190a9a221be147548377855 100644
--- a/navipy/database/test.py
+++ b/navipy/database/test.py
@@ -47,11 +47,23 @@ class TestCase(unittest.TestCase):
         - channel name is None value or nan
         """
         # channels must be strings or char
-        for n in [3, 8.7, None, np.nan]:
+        for n in [(3, 8.7, None, np.nan)]:
             with self.assertRaises(TypeError):
                 DataBase(self.mydb_filename, channels=n)
+
+
+            for l in [None, np.nan, 'Wr',[2, 3.0]]:
+                with self.assertRaises(ValueError):
+                    DataBase(self.mydb_filename, channels= [l])
+
+    def test_adapt_arr(self):
         with self.assertRaises(ValueError):
-            DataBase(self.mydb_filename, channels=[None, 2])
+            database.adapt_array(None)
+
+    def test_convert_arr(self):
+        with self.assertRaises(ValueError):
+            database.convert_array(None)
+
 
     def test_table_exist(self):
         """
@@ -79,14 +91,21 @@ class TestCase(unittest.TestCase):
         - row is out of range; smaller or equal to 0
         - checks if true is returned for an exiting entry (row=1)
         """
+
         for n in [7.0, None, np.nan]:
             with self.assertRaises(TypeError):
                 self.mydb.check_data_validity(n)
-        for n in [-1, 0]:
+
+        for n in [ -1, 0]:
             with self.assertRaises(ValueError):
                 self.mydb.check_data_validity(n)
+
+
+
         assert self.mydb.check_data_validity(1)
 
+
+
     def test_read_posorient(self):
         """
         this test checks the function read_posorient works
@@ -150,6 +169,8 @@ class TestCase(unittest.TestCase):
         for rowid in [0, -2]:
             with self.assertRaises(ValueError):
                 self.mydb.read_posorient(rowid=rowid)
+
+
         with self.assertRaises(TypeError):
             self.mydb.read_posorient(rowid='T')
         with self.assertRaises(Exception):
@@ -159,6 +180,9 @@ class TestCase(unittest.TestCase):
         with self.assertRaises(TypeError):
             self.mydb.read_posorient(rowid=4.5)
 
+
+
+
         for rowid in [1]:
             posoriend2 = self.mydb.read_posorient(rowid=rowid)
             pd.testing.assert_series_equal(posoriend2, posorient)
@@ -180,10 +204,13 @@ class TestCase(unittest.TestCase):
             with self.assertRaises(ValueError):
                 # print("rowid",rowid)
                 self.mydb.scene(rowid=rowid)
+
+
+        with self.assertRaises(Exception):
+                self.mydb.scene(posorient = None, rowid=None)
         with self.assertRaises(TypeError):
             self.mydb.scene(rowid='T')
-        with self.assertRaises(Exception):
-            self.mydb.scene(rowid=None)
+
         with self.assertRaises(TypeError):
             self.mydb.scene(rowid=np.nan)
         with self.assertRaises(TypeError):
diff --git a/navipy/errorprop/test.py b/navipy/errorprop/test.py
index caa509d0c0a0960f8b03af3ab3cd66885cc3ab5a..42dccac88e0c3d216e0b179210a75fc2f37d89b0 100644
--- a/navipy/errorprop/test.py
+++ b/navipy/errorprop/test.py
@@ -1,6 +1,6 @@
 import unittest
 import numpy as np
-from navipy.errorprop import propagate_error, estimate_jacobian
+from navipy.errorprop import propagate_error, estimate_jacobian, estimate_error
 
 
 def sincosine(x):
@@ -44,6 +44,17 @@ class TestErrorProp(unittest.TestCase):
         err_theo[1, 1] = c*(c*d - c*f) - c*(c*e - c*g)
         np.testing.assert_array_almost_equal(err, err_theo)
 
+    def test_estimate_error(self):
+        for i, j in [(2, 3.0), (3.0, 2), ('w', 'w')]:
+            with self.assertRaises(TypeError):
+                estimate_error(i, j)
+
+        for i, j in [(2, [2, 3.0, 4])]:
+            with self.assertRaises(ValueError):
+                estimate_error(i, j)
+
+
+
 
 if __name__ == '__main__':
     unittest.main()
diff --git a/navipy/maths/test_coordinates.py b/navipy/maths/test_coordinates.py
index 3aea4e99293a5be4dbf2159ed51efe18f8f7fbdc..712ebbbf5f8dc102e846e2913fd64aae2ae23a4e 100644
--- a/navipy/maths/test_coordinates.py
+++ b/navipy/maths/test_coordinates.py
@@ -18,7 +18,6 @@ class TestCoordinates(unittest.TestCase):
             with self.assertRaises(ValueError):
                 coordinates.cartesian_to_spherical_vectors(a,b)
 
-
         for c,d in [((3.0,2),([5, 6.0])),(([4.0, 2]),(4, 3))]:
             with self.assertRaises(TypeError):
                 coordinates.cartesian_to_spherical_vectors(c, d)
@@ -27,11 +26,20 @@ class TestCoordinates(unittest.TestCase):
             with self.assertRaises(TypeError):
                 coordinates.cartesian_to_spherical_vectors(g,h)
 
-            with self.assertRaises(Exception):
-                coordinates.cartesian_to_spherical_vectors(g, h)
+        i = np.array([[1,2,3,4],[5,6,7,8], [9,10,11,12]])
+        k = np.array([['w', 1.0, 2],[3,'w', 2.0], ['w', 4.0, 6]])
+
 
+        for i, j in [(i, 2.0), (i, k)]:
+            with self.assertRaises(TypeError):
+                coordinates.cartesian_to_spherical_vectors(i, j)
 
 
+        with self.assertRaises(Exception):
+            i = np.array([[1,2,3,4],[5,6,7,8], [9,10,11,12]])
+            j = np.array([[3, 1, 2],[3,4, 6], [1, 4, 6]])
+            coordinates.cartesian_to_spherical_vectors(i, j)
+
         with self.assertRaises(Exception):
             e = np.array([2, 4, 6, 8])
             f = np.array([2, 4, 6, 8, 3.0])
diff --git a/navipy/processing/test_mcode.py b/navipy/processing/test_mcode.py
index c8afd050156bc45cefc0b9c183f20a11139e3645..23767a8fa2d11370c836fe40ab87681b75ed142c 100644
--- a/navipy/processing/test_mcode.py
+++ b/navipy/processing/test_mcode.py
@@ -1,5 +1,6 @@
 import unittest
 import numpy as np
+import pandas as pd
 from navipy.processing import mcode
 # import matplotlib.pyplot as plt
 
@@ -532,6 +533,20 @@ class TestCase(unittest.TestCase):
         assert np.all(np.isclose(achigh, res_high))
         assert np.all(np.isclose(achigh2, res_high2))
 
+    def test_opticflow(self):
+        series = pd.Series(np.array([1,2,3,4,5]))
+
+        with self.assertRaises(TypeError):
+            mcode._check_optic_flow_param([2, 3.0, 4], 5)
+
+        with self.assertRaises(Exception):
+            mcode._check_optic_flow_param([2, 3.0, 5], series)
+
+
+
+
+
+
 
 if __name__ == '__main__':
     unittest.main()
diff --git a/navipy/processing/test_opticflow.py b/navipy/processing/test_opticflow.py
index 989253d6c0a2df1b544b89452a88c437bca4693e..f10693b2631a4f7dfcd2137091f1dfde25a6a1b5 100644
--- a/navipy/processing/test_opticflow.py
+++ b/navipy/processing/test_opticflow.py
@@ -1,5 +1,6 @@
 import unittest
 from navipy.processing import mcode
+from navipy.processing.mcode import Module
 import pandas as pd
 import numpy as np
 from navipy.trajectories import posorient_columns
@@ -126,3 +127,17 @@ yaw-pitch-roll (zyx) convention has vertical gOF equal to zero
         # Add abs tol because we compare to zero
         np.testing.assert_allclose(rof, np.zeros_like(rof), atol=1e-7)
         np.testing.assert_allclose(vof, np.zeros_like(vof), atol=1e-7)
+
+ #   def test__check_optic_flow(self):
+#
+  #      for c,d in [(4, None), ([3, 7.0], None)]:
+
+
+#            with self.assertRaises(ValueError):
+ #               mcode._check_optic_flow_param(c,d)
+
+#            with self.assertRaises(TypeError):
+ #               mcode._check_optic_flow_param(c, d)
+
+
+