def test_markers_rotate_by_angle_zero_offset(self): markers = MarkersList() markers.add_marker(1, 1, 0, 2) markers.rotate_by_angle(90, 0, 0) m = markers.get_markers()[0] self.assertEqual(m.get_index(), 1) self.assertTrue(m.get_x() < 0.00001) self.assertEqual(m.get_y(), 1) self.assertEqual(m.get_z(), 2) # this is does nothing markers.rotate_by_angle(0, 0, 0) markers.add_marker(2, 1, 0, 3) markers.rotate_by_angle(90, 0, 0) m = markers.get_markers()[0] self.assertEqual(m.get_index(), 1) self.assertTrue(m.get_x() < 0.00001) self.assertTrue(m.get_y() < 0.00001) self.assertEqual(m.get_z(), 2) m = markers.get_markers()[1] self.assertEqual(m.get_index(), 2) self.assertTrue(m.get_x() < 0.00001) self.assertEqual(m.get_y(), 1) self.assertEqual(m.get_z(), 3)
def test_rotate_markers_file_outfile_set_to_none(self): temp_dir = tempfile.mkdtemp() try: markerfile = os.path.join(temp_dir, '3Dmarkers.txt') markers = MarkersList() markers.add_marker(1, 2, 3, 4) markers.write_markers_to_file(markerfile) theargs = Parameters() theargs.outfile = None theargs.angle = 90 theargs.width = 10 theargs.height = 10 theargs.markerfile = markerfile rotate_3dmarkers.rotate_markers_file(theargs) origfile = markerfile + '.orig' self.assertTrue(os.path.isfile(origfile)) fac = MarkersFrom3DMarkersFileFactory(origfile) markers = fac.get_markerslist() m = markers.get_markers()[0] self.assertEqual(m.get_index(), 1) self.assertEqual(m.get_x(), 2) self.assertEqual(m.get_y(), 3) self.assertEqual(m.get_z(), 4) self.assertTrue(os.path.isfile(markerfile)) fac = MarkersFrom3DMarkersFileFactory(markerfile) markers = fac.get_markerslist() m = markers.get_markers()[0] self.assertEqual(m.get_index(), 1) self.assertEqual(m.get_x(), 7) self.assertEqual(m.get_y(), 2) self.assertEqual(m.get_z(), 4) finally: shutil.rmtree(temp_dir)
def test_write_markers_success(self): temp_dir = tempfile.mkdtemp() try: fid_file = os.path.join(temp_dir, 'foo') mwriter = MarkersToIMODFiducialFileWriter(fid_file) fakepoint2model = os.path.join(temp_dir, 'model2point.py') f = open(fakepoint2model, 'w') f.write('#!/usr/bin/env python\n\n') f.write('import sys\n') f.write('f = open(sys.argv[3], "r")\n') f.write('data = f.read()\n') f.write('f.close()\n') f.write('f = open(sys.argv[4], "w")\n') f.write('f.write(data)\n') f.write('f.close()\n') f.flush() f.close() os.chmod(fakepoint2model, stat.S_IRWXU) mwriter.set_point2model_binary(fakepoint2model) mlist = MarkersList() mlist.add_marker(1, 4, 5, 6) mwriter.write_markers(mlist) f = open(fid_file, 'r') data = f.read() self.assertEqual(data, ' 1 4.000000 5.000000 ' '6.000000\n') f.close() finally: shutil.rmtree(temp_dir)
def test_markers_rotate_by_angle_with_offset(self): markers = MarkersList() markers.add_marker(1, 1, 1, 5) markers.rotate_by_angle(90, 5, 5) m = markers.get_markers()[0] self.assertEqual(m.get_index(), 1) self.assertTrue(math.fabs(m.get_x() - 9) < 0.0001) self.assertTrue(math.fabs(m.get_y() - 1) < 0.0001) self.assertEqual(m.get_z(), 5)
def test_markers_rotate_by_angle_none_offset(self): markers = MarkersList() markers.add_marker(1, 1, 0, 2) markers.rotate_by_angle(90, None, None) m = markers.get_markers()[0] self.assertEqual(m.get_index(), 1) self.assertTrue(m.get_x() < 0.00001) self.assertEqual(m.get_y(), 1) self.assertEqual(m.get_z(), 2)
def test_write_markers_no_fiducial_file(self): mwriter = MarkersToIMODFiducialFileWriter(None) mlist = MarkersList() mlist.add_marker(1, 4, 5, 6) try: mwriter.write_markers(mlist) self.fail('Expected UnsetFiducialFileError') except UnsetFiducialFileError as e: self.assertEqual(str(e), 'Fiducial File is set to None')
def test_markers_shift(self): markers = MarkersList() markers.shift_markers(10, 20, 30) self.assertEqual(len(markers.get_markers()), 0) markers.add_marker(1, 2, 3, 4) markers.shift_markers(10, 20, 30) m = markers.get_markers()[0] self.assertEqual(m.get_index(), 1) self.assertEqual(m.get_x(), 12) self.assertEqual(m.get_y(), 23) self.assertEqual(m.get_z(), 34) markers.add_marker(2, 3, 4, 5) markers.shift_markers(10, 20, 30) m = markers.get_markers()[0] self.assertEqual(m.get_index(), 1) self.assertEqual(m.get_x(), 22) self.assertEqual(m.get_y(), 43) self.assertEqual(m.get_z(), 64) m = markers.get_markers()[1] self.assertEqual(m.get_index(), 2) self.assertEqual(m.get_x(), 13) self.assertEqual(m.get_y(), 24) self.assertEqual(m.get_z(), 35) markers.shift_markers(0, 0, 0) m = markers.get_markers()[0] self.assertEqual(m.get_index(), 1) self.assertEqual(m.get_x(), 22) self.assertEqual(m.get_y(), 43) self.assertEqual(m.get_z(), 64) m = markers.get_markers()[1] self.assertEqual(m.get_index(), 2) self.assertEqual(m.get_x(), 13) self.assertEqual(m.get_y(), 24) self.assertEqual(m.get_z(), 35) markers.shift_markers(-10, -20, -30) m = markers.get_markers()[0] self.assertEqual(m.get_index(), 1) self.assertEqual(m.get_x(), 12) self.assertEqual(m.get_y(), 23) self.assertEqual(m.get_z(), 34) m = markers.get_markers()[1] self.assertEqual(m.get_index(), 2) self.assertEqual(m.get_x(), 3) self.assertEqual(m.get_y(), 4) self.assertEqual(m.get_z(), 5)
def test_filtermarkers_one_markerlist(self): mlist = MarkersList() mlist.add_marker(1, 2, 3, 4) mlist.add_marker(1, 2, 3, 5) mlist.add_marker(1, 2, 3, 6) thelist = [] thelist.append(mlist) filt = CommonByIndexMarkersListFilter(thelist) com, uni = filt.filterMarkers(mlist) self.assertTrue(len(uni.get_markers()) == 0) self.assertTrue(len(com.get_markers()) == 3) m = com.get_markers()[0] self.assertEqual(m.get_index(), 1) self.assertEqual(m.get_x(), 2) self.assertEqual(m.get_y(), 3) self.assertEqual(m.get_z(), 4)
def test_markers_write_markers_to_file(self): temp_dir = tempfile.mkdtemp() try: # invalid filename markers = MarkersList() try: markers.write_markers_to_file(temp_dir) self.fail('Expected IOError') except IOError: pass emptyfile = os.path.join(temp_dir, 'emptyfile') # empty markers object markers.write_markers_to_file(emptyfile) self.assertTrue(os.path.isfile(emptyfile)) self.assertEqual(os.path.getsize(emptyfile), 0) # write 1 marker markers.add_marker(1, 2, 3, 4) one = os.path.join(temp_dir, 'one') markers.write_markers_to_file(one) self.assertTrue(os.path.isfile(one)) f = open(one, 'r') line = f.readline() self.assertEqual(line, ' 1 2.000000 3.000000 4.000000\n') f.close() # write 2 markers markers.add_marker(2, 3, 4, 5) two = os.path.join(temp_dir, 'two') markers.write_markers_to_file(two) self.assertTrue(os.path.isfile(two)) f = open(two, 'r') line = f.readline() self.assertEqual(line, ' 1 2.000000 3.000000 4.000000\n') line = f.readline() self.assertEqual(line, ' 2 3.000000 4.000000 5.000000\n') f.close() finally: shutil.rmtree(temp_dir)
def test_markers_add_get_clear(self): markers = MarkersList() self.assertEqual(len(markers.get_markers()), 0) markers.add_marker(1, 2, 3, 4) self.assertEqual(len(markers.get_markers()), 1) m = markers.get_markers()[0] self.assertEqual(m.get_index(), 1) self.assertEqual(m.get_x(), 2) self.assertEqual(m.get_y(), 3) self.assertEqual(m.get_z(), 4) markers.add_marker(2, 3, 4, 5) self.assertEqual(len(markers.get_markers()), 2) m = markers.get_markers()[1] self.assertEqual(m.get_index(), 2) self.assertEqual(m.get_x(), 3) self.assertEqual(m.get_y(), 4) self.assertEqual(m.get_z(), 5) markers.clear_markers() self.assertEqual(len(markers.get_markers()), 0)
def test_filtermarkers_three_list_one_missing_markerlist(self): mlist1 = MarkersList() mlist1.add_marker(1, 2, 3, 4) mlist1.add_marker(1, 2, 3, 5) mlist1.add_marker(2, 2, 3, 6) mlist1.add_marker(4, 2, 3, 6) mlist1.add_marker(4, 2, 3, 7) thelist = [] thelist.append(mlist1) mlist2 = MarkersList() mlist2.add_marker(1, 2, 3, 4) mlist2.add_marker(1, 2, 3, 5) mlist2.add_marker(3, 2, 3, 6) mlist2.add_marker(4, 2, 3, 6) mlist2.add_marker(4, 2, 3, 7) thelist.append(mlist2) mlist3 = MarkersList() mlist3.add_marker(1, 2, 3, 4) mlist3.add_marker(1, 2, 3, 5) mlist3.add_marker(3, 2, 3, 6) mlist3.add_marker(4, 2, 3, 6) mlist3.add_marker(5, 1, 1, 1) thelist.append(mlist3) filt = CommonByIndexMarkersListFilter(thelist) com, uni = filt.filterMarkers(mlist1) self.assertTrue(len(uni.get_markers()) == 1) self.assertTrue(len(com.get_markers()) == 4) self.assertEqual(uni.get_markers()[0].get_index(), 2) self.assertEqual(uni.get_markers()[0].get_z(), 6) com, uni = filt.filterMarkers(mlist2) self.assertTrue(len(uni.get_markers()) == 1) self.assertTrue(len(com.get_markers()) == 4) self.assertEqual(uni.get_markers()[0].get_index(), 3) self.assertEqual(uni.get_markers()[0].get_y(), 3) com, uni = filt.filterMarkers(mlist3) self.assertTrue(len(uni.get_markers()) == 2) self.assertTrue(len(com.get_markers()) == 3) self.assertEqual(uni.get_markers()[0].get_index(), 3) self.assertEqual(uni.get_markers()[0].get_y(), 3) self.assertEqual(uni.get_markers()[1].get_index(), 5) self.assertEqual(uni.get_markers()[1].get_y(), 1)