def test_newInstance_method(self): concept = Concept() concept.setDatatype(True) self.obsToCopy = Obs(Person(), concept, datetime.now(), Location()) self.newObs = self.obs.newInstance(self.obsToCopy) self.assertFalse(self.newObs == self.obsToCopy)#both have None obsId self.assertIsNot(self.newObs, self.obsToCopy) self.obsToCopy = Obs(9118) self.newObs = self.obs.newInstance(self.obsToCopy) self.assertFalse(self.newObs == self.obsToCopy)#newObs has None obsId but obsToCopy has an obsId
def FandTGen(N): #Constants and Parametres iterations_of_positions = 10000 mean_length_list = [] #Empty List to be filled later origin = [0,0,0] #Empty lists to fill later number_list = [] mean_mag_force_list = [] mean_mag_torque_list = [] summed_force_list = [] summed_torque_list = [] for i in range(iterations_of_positions): #more empty lists innit initial_force_list = [] final_force_list = [] torque_list = [] for i in range(N): #This loop generates a sphere magnitude, vector = obs.RandSphere(N) initial_force_list.append(vector) #print(initial_force_list) transformed_v = obs.translation(vector, initial_force_list) #transforiming to get a nice graph for i in range(N): transformed_v[i] = transformed_v[i] / np.linalg.norm(transformed_v[i]) #literally for getting a nice graph alpha_list = [] #list for angles to the sphere for i in range(N): mtx,alpha = obs.fullrotation(transformed_v[i]) final_force_list.append(mtx) alpha_list.append(alpha) summed_force_list.append(obs.forces(final_force_list)) summed_torque_list.append(obs.torque(final_force_list, initial_force_list, N, torque_list)) mean_mag_force_list.append(scipy.linalg.norm(obs.forces(final_force_list))) mean_mag_torque_list.append(scipy.linalg.norm(obs.torque(final_force_list, initial_force_list, N, torque_list))) mean_force = sum(mean_mag_force_list)/(iterations_of_positions) mean_torque = sum(mean_mag_torque_list)/(iterations_of_positions) return(mean_force, mean_torque, sum(summed_force_list)/iterations_of_positions, sum(summed_torque_list)/iterations_of_positions)
def test_obs_group_methods(self): self.obs.setObsGroup(None) self.assertFalse(self.obs.hasGroupMembers()) self.obs1 = Obs(127) self.obs2 = Obs(9827) concept = Concept() concept.setSet(True) self.obs.setConcept(concept) self.obs.setGroupMembers(set([self.obs1, self.obs2])) self.assertTrue(self.obs.getGroupMembers(True) != None) self.assertTrue(self.obs.getGroupMembers(False) != None) self.obs.addGroupMember(Obs(7543)) self.obs.addGroupMember(self.obs) #self.assertRaises(APIException) #the line before should raise this exception self.obs.removeGroupMember(self.obs1) self.assertIsNone(self.obs1.getObsGroup()) #self.obsToCopy should be parent group of obs members. ret = self.obs.getRelatedObservations() for i in ret: self.assertFalse(i.isObsGrouping())
iterations_of_numbers = 8 #How many times we want to increase number of sperm mean_length_list = [] #Empty List to be filled later flagella_number_list = [] #Ditto origin = [0,0,0] N = 2 n_bins = 30 #Bins for the histogram plot time1 = timeit.default_timer() #Timing The Loop for i in range(iterations_of_numbers): vector_magnitude_list = [] for i in range(iterations_of_postitions): #This loop generates the spheres magnitude, vector = Obs.RandSphere(N) vector_magnitude_list.append(magnitude) #print(str(vector_magnitude_list)) N += 2 #How many the number of flagella increases by flagella_number_list.append(N) mean_length_list.append(Obs.mean_value(vector_magnitude_list, n_bins)) #Now we append the empty lists from before #Finally, write to a file for a,b in zip(mean_length_list,flagella_number_list): f.write("%s,%s\n" % (a,b)) f.close() time2 = timeit.default_timer() print("Time taken for code to run... in seconds :- " + str(time2 - time1)) #Finish Timing The Loop
def setUp(self): self.obs = Obs(913)
class TestObsFunctions(unittest.TestCase): def setUp(self): self.obs = Obs(913) def test_newInstance_method(self): concept = Concept() concept.setDatatype(True) self.obsToCopy = Obs(Person(), concept, datetime.now(), Location()) self.newObs = self.obs.newInstance(self.obsToCopy) self.assertFalse(self.newObs == self.obsToCopy)#both have None obsId self.assertIsNot(self.newObs, self.obsToCopy) self.obsToCopy = Obs(9118) self.newObs = self.obs.newInstance(self.obsToCopy) self.assertFalse(self.newObs == self.obsToCopy)#newObs has None obsId but obsToCopy has an obsId def test_obs_group_methods(self): self.obs.setObsGroup(None) self.assertFalse(self.obs.hasGroupMembers()) self.obs1 = Obs(127) self.obs2 = Obs(9827) concept = Concept() concept.setSet(True) self.obs.setConcept(concept) self.obs.setGroupMembers(set([self.obs1, self.obs2])) self.assertTrue(self.obs.getGroupMembers(True) != None) self.assertTrue(self.obs.getGroupMembers(False) != None) self.obs.addGroupMember(Obs(7543)) self.obs.addGroupMember(self.obs) #self.assertRaises(APIException) #the line before should raise this exception self.obs.removeGroupMember(self.obs1) self.assertIsNone(self.obs1.getObsGroup()) #self.obsToCopy should be parent group of obs members. ret = self.obs.getRelatedObservations() for i in ret: self.assertFalse(i.isObsGrouping()) def test_value_methods(self): self.obs.setValueBoolean(True) #self.assertIsNotNone(self.obs.getValueCoded()) self.obs.setValueNumeric(1) self.assertTrue(self.obs.getValueAsBoolean()) self.obs.setValueNumeric(0) self.assertFalse(self.obs.getValueAsBoolean()) self.assertFalse(self.obs.isComplex()) self.obs.setValueAsString("True") #self.assertTrue(self.obs.getValueAsString()) concept1 = Concept() concept1.setDatatype(ConceptDatatype(13)) self.obs.setConcept(concept1) self.obs.getConcept().getDatatype().setHl7Abbreviation("NM") self.obs.setValueAsString("13")
print(str(N / (2 + iterations_of_number_increase))) summed_force_list = [] summed_torque_list = [] mean_mag_force_list = [] mean_mag_torque_list = [] for i in range(iterations_of_positions): initial_force_list = [] final_force_list = [] torque_list = [] for i in range(N): #This loop generates a sphere magnitude, vector = obs.RandSphere(N) initial_force_list.append(vector) #print(initial_force_list) transformed_v = obs.translation( vector, initial_force_list) #transforiming to get a nice graph for i in range(N): transformed_v[i] = transformed_v[i] / np.linalg.norm( transformed_v[i]) #literally for getting a nice graph alpha_list = [] #list for angles to the sphere for i in range(N): mtx, alpha = obs.fullrotation(transformed_v[i])