test_reliability_node.py
Go to the documentation of this file.
1 #!/usr/bin/env python
2 
3 import unittest
4 import math
6 
7 PKG = 'phm_reliability'
8 NAME = 'test_reliability_node'
9 
10 class TestReliabilityNode(unittest.TestCase):
11  def info_parameters(self):
12  info_dict = dict({'D2*': {'T2': {'ObjectCount': 10, 'ObjectFailureRate': 10.0}, 'T3': {'ObjectCount': 3, 'ObjectFailureRate': 55555.0}}, 'D3*': {'T4': {'ObjectCount': 5, 'ObjectFailureRate': 2.0}}, 'D1*': {'T1': {'ObjectCount': 5, 'ObjectFailureRate': 22222.0}}})
13 
14  return info_dict
15 
16  def type_parameters(self):
17  type_dict = dict({
18  'D2*': {
19  'T2': {'type': 'Serial'},
20  'T3': {'type': 'Parallel'},
21  'unrelated': ['T2', 'T3'],
22  'relation': {
23  'T2': {'Serial': [], 'Parallel': []},
24  'T3': {'Serial': [], 'Parallel': []}},
25  'type*': 'Parallel'},
26  'D3*': {
27  'T4': {'type': 'Parallel'},
28  'unrelated': ['T4'],
29  'relation': {
30  'T4': {'Serial': [], 'Parallel': []}},
31  'type*': 'Serial'},
32  'D1*': {
33  'T1': {'type': 'Serial'},
34  'unrelated': ['T1'],
35  'relation': {
36  'T1': {'Serial': [], 'Parallel': []}},
37  'type*': 'Serial'}})
38 
39  return type_dict
40 
41 
42  def system_graph_dict(self):
43  temp_dict = dict ({'System': {'ModuleValue': '', 'Reliability': 0.0, 'Type': '', 'FailureRate': ''}, 'D2': {'ModuleValue': 1, 'Reliability': 0.0, 'Type': 'Parallel', 'FailureRate': 30402.727272727276}, 'D3': {'ModuleValue': 3, 'Reliability': 7.224174, 'Type': 'Serial', 'FailureRate': 0.8759124087591241}, 'D1': {'ModuleValue': 4, 'Reliability': 0.0, 'Type': 'Serial', 'FailureRate': 111110.0}})
44 
45  return temp_dict
46 
47 
48  def module_graph_dict(self):
49  temp_dict = dict({'D2': {'ObjectCount': '', 'FailureRate': 30402.727272727276, 'Type': 'Parallel', 'ObjectFailureRate': ''}, 'T2': {'ObjectCount': 10, 'FailureRate': 100.0, 'Type': 'Serial', 'ObjectFailureRate': 10.0}, 'T3': {'ObjectCount': 3, 'FailureRate': 30302.727272727276, 'Type': 'Parallel', 'ObjectFailureRate': 55555.0}})
50 
51  return temp_dict
52 
53 
54  def module_array(self):
55  temp_list = ['D2', 'D3', 'D1']
56 
57 
58  return temp_list
59 
60  def component_array(self):
61  temp_list = [['T2', 'T3'], ['T4'], ['T1']]
62 
63 
64  return temp_list
65 
66 
68  module_usage_during_task_list = [1, 3, 4]
69 
70  return module_usage_during_task_list
71 
72 
74  module_failure_rate = [30402.727272727276, 0.8759124087591241, 111110.0]
75 
76  return module_failure_rate
77 
78 
79 # -------------------------------------------------------------------------------------------------
80 
81 
83  info_dict = self.info_parameters()
84  reliability_module = "D2"
85  component_list = "T3"
86  test_temp = rn.get_select_parameter_dict(info_dict, reliability_module, component_list)
87  test_result = dict({'ObjectCount': 3, 'ObjectFailureRate': 55555.0})
88 
89  self.assertDictEqual(test_temp, test_result)
90 
91 
93  type_dict = self.type_parameters()
94  reliability_module = "D2"
95  component_list = "T3"
96  test_temp = rn.get_select_parameter_dict(type_dict, reliability_module, component_list)
97  test_result = dict({'type': 'Parallel'})
98 
99  self.assertDictEqual(test_temp, test_result)
100 
101 # -------------------------------------------------------------------------------------------------
103  type_dict = self.type_parameters()
104  reliability_module = "D2"
105  test_temp = rn.get_select_module_type(type_dict, reliability_module)
106  test_result = 'Parallel'
107 
108  self.assertEqual(test_temp, test_result)
109 
110 # -------------------------------------------------------------------------------------------------
112  temp_dict = dict({'ObjectCount': 3, 'ObjectFailureRate': 55555.0})
113  temp_type = "Serial"
114  test_temp = rn.object_failure_rate_calculation(temp_dict, temp_type)
115  test_result = 166665.0
116 
117  self.assertEqual(test_temp, test_result)
118 
120  temp_dict = dict({'ObjectCount': 3, 'ObjectFailureRate': 55555.0})
121  temp_type = "Parallel"
122  test_temp = rn.object_failure_rate_calculation(temp_dict, temp_type)
123  test_result = 30302.727272727276
124 
125  self.assertEqual(test_temp, test_result)
126 
127 # -------------------------------------------------------------------------------------------------
128 
130  temp_dict = dict({'ObjectCount': 3, 'ObjectFailureRate': 55555.0})
131  test_temp = rn.object_parallel_failure_rate_calculation(temp_dict)
132  test_result = 30302.727272727276
133 
134  self.assertEqual(test_temp, test_result)
135 
136 
138  temp_dict = dict({'ObjectCount': 3, 'ObjectFailureRate': 55555.0})
139  test_temp = rn.object_serial_failure_rate_calculation(temp_dict)
140  test_result = 166665.0
141 
142  self.assertEqual(test_temp, test_result)
143 
144 # -------------------------------------------------------------------------------------------------
145 
147  temp_list = [1.00, 2.00, 3.00, 4.00, 5.00]
148  test_temp = rn.component_parallel_failure_rate_calculation(temp_list)
149  test_result = 6.569343065693431
150 
151  self.assertEqual(test_temp, test_result)
152 
154  temp_list = list()
155  test_temp = rn.component_parallel_failure_rate_calculation(temp_list)
156  test_result = 0.0
157 
158  self.assertEqual(test_temp, test_result)
159 
161  temp_list = [1.00, 2.00, 3.00, 4.00, 5.00]
162  test_temp = rn.component_serial_failure_rate_calculation(temp_list)
163  test_result = 15.0
164 
165  self.assertEqual(test_temp, test_result)
166 
168  temp_list = list()
169  test_temp = rn.component_serial_failure_rate_calculation(temp_list)
170  test_result = 0.0
171 
172  self.assertEqual(test_temp, test_result)
173 
174 # -------------------------------------------------------------------------------------------------
175 
177  test_temp = rn.reliability_parallel_formula(1)
178  test_result = 0
179 
180  self.assertEqual(test_temp, test_result)
181 
183  test_temp = rn.reliability_parallel_formula(2)
184  test_result = -1.0
185 
186  self.assertEqual(test_temp, test_result)
187 
189  temp_list = list()
190  test_temp = rn.reliability_parallel_calculation(temp_list)
191  test_result = 1.0
192 
193  self.assertEqual(test_temp, test_result)
194 
196  temp_list = [1.0]
197  test_temp = rn.reliability_parallel_calculation(temp_list)
198  test_result = 1.0
199 
200  self.assertEqual(test_temp, test_result)
201 
203  temp_list = list()
204  test_temp = rn.reliability_serial_calculation(temp_list)
205  test_result = 1.0
206 
207  self.assertEqual(test_temp, test_result)
208 
210  temp_list = [1.0]
211  test_temp = rn.reliability_serial_calculation(temp_list)
212  test_result = 1.0
213 
214  self.assertEqual(test_temp, test_result)
215 
216 # -------------------------------------------------------------------------------------------------
217 
219  reliability_module = self.module_array()
220  component_list = self.component_array()
221  info_dict = self.info_parameters()
222  type_dict = self.type_parameters()
223  graph_control = False
224  test_temp = rn.failure_rate_for_modules(reliability_module, component_list, info_dict, type_dict, graph_control)
225  test_result = [30402.727272727276, 0.8759124087591241, 111110.0]
226 
227  self.assertEqual(test_temp, test_result)
228 
229 # -------------------------------------------------------------------------------------------------
230 
232  test_temp = rn.nominal_reliability_calculate(1, 1)
233  test_result = 0.36787944117144233
234 
235  self.assertEqual(test_temp, test_result)
236 
237 # -------------------------------------------------------------------------------------------------
238 
240  test_temp = rn.parallel_count_calculate(0)
241  test_result = 1
242 
243  self.assertEqual(test_temp, test_result)
244 
246  test_temp = rn.parallel_count_calculate(3)
247  test_result = 0.545454545454545501
248 
249  self.assertEqual(test_temp, test_result)
250 
251 # -------------------------------------------------------------------------------------------------
252 
254  test_temp = rn.percentage_calculated(80)
255  test_result = 8000
256 
257  self.assertEqual(test_temp, test_result)
258 
259 # -------------------------------------------------------------------------------------------------
260 
262  reliability_module = self.module_array()
263  type_dict = self.type_parameters()
264  module_usage_during_task_list = self.module_usage_during_task()
265  module_failure_rate = self.failure_rate_for_modules()
266  want_a_string = False
267  graph_control = False
268  test_temp = rn.reliability_calculation_function(type_dict, reliability_module, module_usage_during_task_list, module_failure_rate, want_a_string, graph_control)
269  test_result = 0.0
270 
271  self.assertEqual(test_temp, test_result)
272 
273 
274 # -------------------------------------------------------------------------------------------------
275 
277  module_name = "System"
278  graph_dict = self.system_graph_dict()
279  test_temp = rn.create_system_graph(module_name, graph_dict)
280  test_result = True
281 
282  self.assertEqual(test_temp, test_result)
283 
285  module_name = "D2"
286  graph_dict = self.module_graph_dict()
287  test_temp = rn.create_module_graph(module_name, graph_dict)
288  test_result = True
289 
290  self.assertEqual(test_temp, test_result)
291 # -------------------------------------------------------------------------------------------------
292 
293  def test_monitoring(self):
294  rn.show_value_float = 1.0
295  test_temp = rn.monitoring(False)
296  test_result = 1.0
297 
298  self.assertEqual(test_temp, test_result)
299 
300 # -------------------------------------------------------------------------------------------------
301 
302 if __name__ == '__main__':
303  import rosunit
304  rosunit.unitrun(PKG, NAME, TestReliabilityNode, sysargs = "--cov", coverage_packages=[str(PKG)])
305  #import rostest
306  #rostest.rosrun(PKG, NAME, TestReliabilityNode)
307 
308 
309 
310 


phm_reliability
Author(s):
autogenerated on Mon Jun 10 2019 14:13:33