Example #1
0
 def test_frame_combos(self):
     #test that the frame range is always the minimum to the maximum
     combine_prints(self.ex_df, 4, 5)
     self.assertTrue(self.ex_df.first_frame[5] == 12)
     self.assertTrue(self.ex_df.last_frame[5] == 20)
     #check with odd ordering of first and last
     combine_prints(self.ex_df, 2, 3)
     self.assertTrue(self.ex_df.first_frame[3] == 1)
     self.assertTrue(self.ex_df.last_frame[3] == 14)
Example #2
0
 def test_max_idx_kept(self):
     combine_prints(self.ex_df, 0, 1)
     self.assertTrue(1 in self.ex_df.index.values)
     self.assertFalse(0 in self.ex_df.index.values)
     combine_prints(self.ex_df, 1, 5)
     self.assertTrue(5 in self.ex_df.index.values)
     self.assertFalse(1 in self.ex_df.index.values)
     self.assertTrue(10 in self.ex_df.print_numb.values)
     self.assertFalse(2 in self.ex_df.print_numb.values)
Example #3
0
    def test_max_area_stats_kept_keep_idx_and_big_same(self):
        #when big_idx and keep_idx are the same
        self.assertTrue(self.ex_df.max_area[3] == 22)
        self.assertTrue(self.ex_df.X[3] == 9)
        self.assertTrue(self.ex_df.Y[3] == 70)
        self.assertTrue(self.ex_df.frame_max_a[3] == 6)

        combine_prints(self.ex_df, 2, 3)

        self.assertTrue(self.ex_df.max_area[3] == 22)
        self.assertTrue(self.ex_df.X[3] == 9)
        self.assertTrue(self.ex_df.Y[3] == 70)
        self.assertTrue(self.ex_df.frame_max_a[3] == 6)
Example #4
0
    def test_max_area_stats_kept_keep_idx_and_big_diff(self):
        #when big_idx and keep_idx are different
        self.assertTrue(self.ex_df.max_area[2] == 10)
        self.assertTrue(self.ex_df.X[2] == 8)
        self.assertTrue(self.ex_df.Y[2] == 66)
        self.assertTrue(self.ex_df.frame_max_a[2] == 5)

        combine_prints(self.ex_df, 1, 2)

        self.assertTrue(self.ex_df.max_area[2] == 40)
        self.assertTrue(self.ex_df.X[2] == 6)
        self.assertTrue(self.ex_df.Y[2] == 10)
        self.assertTrue(self.ex_df.frame_max_a[2] == 3)
Example #5
0
 def on_key_press(self, event):
     """handles each of the different key events.
     l,r,h, and f change the print classification of selected print
     d deletes the print, and has a helper method to do it.
     c and enter
     """
     if self.selected_print is not None:
         #if its a keypress to set one of the paw id props
         if event.key in ['l', 'r', 'h', 'f']:
             self.change_print_classification(event.key)
         elif event.key == 'd':
             self.delete_print(self.selected_print)
         elif event.key == 'c':
             self.toggle_combo_state()
         elif event.key == 'enter':
             if self.in_combo_state and self.second_selected is not None:
                 print(self.second_selected, self.selected_print)
                 #the prints have to have the same front and side class
                 if (self.combo_prints.is_right[self.second_selected] == \
                     self.combo_prints.is_right[self.selected_print] and
                     self.combo_prints.is_hind[self.second_selected] == \
                     self.combo_prints.is_hind[self.selected_print]):
                     #TODO: make this combine hulls if in same frame
                     self.combo_prints[
                         'print_numb'] = self.combo_prints.index.values
                     keep, del_ = combine_prints(self.combo_prints,
                                                 self.selected_print,
                                                 self.second_selected,
                                                 hulls_df=self.hulls_df)
                     self.handle_combine_graphics(keep, del_)
                     self.in_combo_state = False
                     self.second_selected = None
                     self.selected_print = None
                 else:
                     #TODO: display this onscreen somehow
                     #for some reason the message box is crashing everything
                     print("PAWS MUST MATCH")
                     self.in_combo_state = False
                     self.recolor(self.second_selected)
                     self.second_selected = None
                     self.select_panel.set_selected(
                         self.selected_print,
                         self.combo_prints.is_right[self.selected_print],
                         self.combo_prints.is_hind[self.selected_print])
         elif event.key == 'm':
             self.initiate_split_window()
Example #6
0
 def test_no_combine_different_classes(self):
     with self.assertRaises(ValueError):
         combine_prints(self.ex_df_varied, 4, 5)