Get rid of deprecation warnings
[integration/test.git] / csit / libraries / CompareStream.robot
1 *** Settings ***
2 Documentation       This Resource contains list of Keywords Set_Variable_If_At_Least*, Set_Variable_If_At_Most,
3 ...                 Run_Keyword_If_At_Least*, Run_Keyword_If_At_Most*,
4 ...                 Run_Keyword_If_More_Than*, Run_Keyword_If_Less_Than*,
5 ...                 for comparison ${ODL_STREAM} to the given ${lower_bound},
6 ...                 in order to replace ad-hoc conditional execution in suites.
7
8 Library             Collections
9 Library             String
10
11
12 *** Variables ***
13 &{Stream_dict}
14 ...                 carbon=${6}
15 ...                 nitrogen=${7}
16 ...                 oxygen=${8}
17 ...                 fluorine=${9}
18 ...                 neon=${10}
19 ...                 sodium=${11}
20 ...                 magnesium=${12}
21 ...                 aluminium=${13}
22 ...                 silicon=${14}
23 ...                 phosphorus=${15}
24 ...                 sulfur=${16}
25 ...                 chlorine=${17}
26 ...                 master=${999}
27
28
29 *** Keywords ***
30 Set_Variable_If_At_Least
31     [Documentation]    Compare ${lower_bound} to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at least ${lower_bound},
32     ...    return ${value_if_false} otherwise.
33     [Arguments]    ${lower_bound}    ${value_if_true}    ${value_if_false}
34     BuiltIn.Run_Keyword_And_Return
35     ...    BuiltIn.Set_Variable_If
36     ...    ${Stream_dict}[${ODL_STREAM}] >= ${Stream_dict}[${lower_bound}]
37     ...    ${value_if_true}
38     ...    ${value_if_false}
39
40 Set_Variable_If_At_Most
41     [Documentation]    Compare ${upper_bound} to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most ${upper_bound},
42     ...    return ${value_if_false} otherwise.
43     [Arguments]    ${upper_bound}    ${value_if_true}    ${value_if_false}
44     BuiltIn.Run_Keyword_And_Return
45     ...    BuiltIn.Set_Variable_If
46     ...    ${Stream_dict}[${ODL_STREAM}] <= ${Stream_dict}[${upper_bound}]
47     ...    ${value_if_true}
48     ...    ${value_if_false}
49
50 Set_Variable_If_At_Least_Carbon
51     [Documentation]    Compare carbon to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at least carbon,
52     ...    return ${value_if_false} otherwise.
53     [Arguments]    ${value_if_true}    ${value_if_false}
54     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Least    carbon    ${value_if_true}    ${value_if_false}
55
56 Set_Variable_If_At_Least_Nitrogen
57     [Documentation]    Compare nitrogen to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at least nitrogen,
58     ...    return ${value_if_false} otherwise.
59     [Arguments]    ${value_if_true}    ${value_if_false}
60     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Least    nitrogen    ${value_if_true}    ${value_if_false}
61
62 Set_Variable_If_At_Least_Oxygen
63     [Documentation]    Compare oxygen to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at least oxygen,
64     ...    return ${value_if_false} otherwise.
65     [Arguments]    ${value_if_true}    ${value_if_false}
66     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Least    oxygen    ${value_if_true}    ${value_if_false}
67
68 Set_Variable_If_At_Least_Fluorine
69     [Documentation]    Compare fluorine to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at least fluorine,
70     ...    return ${value_if_false} otherwise.
71     [Arguments]    ${value_if_true}    ${value_if_false}
72     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Least    fluorine    ${value_if_true}    ${value_if_false}
73
74 Set_Variable_If_At_Least_Neon
75     [Documentation]    Compare neon to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at least neon,
76     ...    return ${value_if_false} otherwise.
77     [Arguments]    ${value_if_true}    ${value_if_false}
78     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Least    neon    ${value_if_true}    ${value_if_false}
79
80 Set_Variable_If_At_Least_Sodium
81     [Documentation]    Compare neon to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at least sodium,
82     ...    return ${value_if_false} otherwise.
83     [Arguments]    ${value_if_true}    ${value_if_false}
84     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Least    sodium    ${value_if_true}    ${value_if_false}
85
86 Set_Variable_If_At_Least_Magnesium
87     [Documentation]    Compare magnesium to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at least magnesium, return ${value_if_false} otherwise.
88     [Arguments]    ${value_if_true}    ${value_if_false}
89     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Least    magnesium    ${value_if_true}    ${value_if_false}
90
91 Set_Variable_If_At_Least_Aluminium
92     [Documentation]    Compare aluminium to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at least aluminium, return ${value_if_false} otherwise.
93     [Arguments]    ${value_if_true}    ${value_if_false}
94     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Least    aluminium    ${value_if_true}    ${value_if_false}
95
96 Set_Variable_If_At_Least_Silicon
97     [Documentation]    Compare silicon to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at least silicon, return ${value_if_false} otherwise.
98     [Arguments]    ${value_if_true}    ${value_if_false}
99     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Least    silicon    ${value_if_true}    ${value_if_false}
100
101 Set_Variable_If_At_Least_Phosphorus
102     [Documentation]    Compare phosphorus to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at least phosphorus, return ${value_if_false} otherwise.
103     [Arguments]    ${value_if_true}    ${value_if_false}
104     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Least    phosphorus    ${value_if_true}    ${value_if_false}
105
106 Set_Variable_If_At_Least_Sulfur
107     [Documentation]    Compare sulfur to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at least sulfur, return ${value_if_false} otherwise.
108     [Arguments]    ${value_if_true}    ${value_if_false}
109     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Least    sulfur    ${value_if_true}    ${value_if_false}
110
111 Set_Variable_If_At_Least_Chlorine
112     [Documentation]    Compare chlorine to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at least chlorine, return ${value_if_false} otherwise.
113     [Arguments]    ${value_if_true}    ${value_if_false}
114     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Least    chlorine    ${value_if_true}    ${value_if_false}
115
116 Set_Variable_If_At_Most_Carbon
117     [Documentation]    Compare carbon to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most carbon,
118     ...    return ${value_if_false} otherwise.
119     [Arguments]    ${value_if_true}    ${value_if_false}
120     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Most    carbon    ${value_if_true}    ${value_if_false}
121
122 Set_Variable_If_At_Most_Nitrogen
123     [Documentation]    Compare nitrogen to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most nitrogen,
124     ...    return ${value_if_false} otherwise.
125     [Arguments]    ${value_if_true}    ${value_if_false}
126     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Most    nitrogen    ${value_if_true}    ${value_if_false}
127
128 Set_Variable_If_At_Most_Oxygen
129     [Documentation]    Compare oxygen to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most oxygen,
130     ...    return ${value_if_false} otherwise.
131     [Arguments]    ${value_if_true}    ${value_if_false}
132     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Most    oxygen    ${value_if_true}    ${value_if_false}
133
134 Set_Variable_If_At_Most_Fluorine
135     [Documentation]    Compare fluorine to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most fluorine,
136     ...    return ${value_if_false} otherwise.
137     [Arguments]    ${value_if_true}    ${value_if_false}
138     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Most    fluorine    ${value_if_true}    ${value_if_false}
139
140 Set_Variable_If_At_Most_Neon
141     [Documentation]    Compare neon to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most neon,
142     ...    return ${value_if_false} otherwise.
143     [Arguments]    ${value_if_true}    ${value_if_false}
144     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Most    neon    ${value_if_true}    ${value_if_false}
145
146 Set_Variable_If_At_Most_Sodium
147     [Documentation]    Compare neon to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most sodium,
148     ...    return ${value_if_false} otherwise.
149     [Arguments]    ${value_if_true}    ${value_if_false}
150     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Most    sodium    ${value_if_true}    ${value_if_false}
151
152 Set_Variable_If_At_Most_Magnesium
153     [Documentation]    Compare magnesium to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most magnesium,
154     ...    return ${value_if_false} otherwise.
155     [Arguments]    ${value_if_true}    ${value_if_false}
156     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Most    magnesium    ${value_if_true}    ${value_if_false}
157
158 Set_Variable_If_At_Most_Aluminium
159     [Documentation]    Compare aluminium to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most aluminium,
160     ...    return ${value_if_false} otherwise.
161     [Arguments]    ${value_if_true}    ${value_if_false}
162     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Most    aluminium    ${value_if_true}    ${value_if_false}
163
164 Set_Variable_If_At_Most_Silicon
165     [Documentation]    Compare silicon to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most silicon,
166     ...    return ${value_if_false} otherwise.
167     [Arguments]    ${value_if_true}    ${value_if_false}
168     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Most    silicon    ${value_if_true}    ${value_if_false}
169
170 Set_Variable_If_At_Most_Phosphorus
171     [Documentation]    Compare phosphorus to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most phosphorus,
172     ...    return ${value_if_false} otherwise.
173     [Arguments]    ${value_if_true}    ${value_if_false}
174     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Most    phosphorus    ${value_if_true}    ${value_if_false}
175
176 Set_Variable_If_At_Most_Sulfur
177     [Documentation]    Compare sulfur to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most sulfur,
178     ...    return ${value_if_false} otherwise.
179     [Arguments]    ${value_if_true}    ${value_if_false}
180     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Most    sulfur    ${value_if_true}    ${value_if_false}
181
182 Set_Variable_If_At_Most_Chlorine
183     [Documentation]    Compare chlorine to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most chlorine,
184     ...    return ${value_if_false} otherwise.
185     [Arguments]    ${value_if_true}    ${value_if_false}
186     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Most    chlorine    ${value_if_true}    ${value_if_false}
187
188 CompareStream__Convert_Input
189     [Documentation]    Splits arguments into args and kwargs is used in Run_Keyword_If_At_Least_Else and Run_Keyword_If_At_Most_Else.
190     ...    The problem is, when the string contains =, but it is not a named argument (name=value). There can be many values containing =, but
191     ...    for sure it is present in xmls. If the string starts with "<" it will be treated as it is xml and splitting for
192     ...    name and value will not be executed.
193     ...    If named argument is passed into this kw, only string data are supported e.g. name=string. Complex variables such as lists or dictionaries
194     ...    are not supported.
195     [Arguments]    @{arguments}
196     ${args}    BuiltIn.Create_List
197     ${kwargs}    BuiltIn.Create_Dictionary
198     FOR    ${arg}    IN    @{arguments}
199         ${arg}    BuiltIn.Convert_To_String    ${arg}
200         ${removed}    String.Remove_String    ${arg}    \n    ${Space}    \t
201         ...    \r
202         IF    "${removed[0]}" == "<"
203             ${splitted}    BuiltIn.Create List    ${arg}
204         ELSE
205             ${splitted}    String.Split_String    ${arg}    separator==    max_split=1
206         END
207         ${len}    BuiltIn.Get_Length    ${splitted}
208         IF    ${len}==1
209             Collections.Append_To_List    ${args}    ${splitted}[0]
210         ELSE
211             Collections.Set_To_Dictionary    ${kwargs}    @{splitted}
212         END
213     END
214     RETURN    ${args}    ${kwargs}
215
216 Run_Keyword_If_At_Least
217     [Documentation]    Compare ${lower_bound} to ${ODL_STREAM} and in case ${ODL_STREAM} is at least ${lower_bound},
218     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
219     [Arguments]    ${lower_bound}    ${kw_name}    @{varargs}    &{kwargs}
220     BuiltIn.Run_Keyword_And_Return_If
221     ...    ${Stream_dict}[${ODL_STREAM}] >= ${Stream_dict}[${lower_bound}]
222     ...    ${kw_name}
223     ...    @{varargs}
224     ...    &{kwargs}
225
226 Run_Keyword_If_At_Least_Else
227     [Documentation]    Compare ${lower_bound} to ${ODL_STREAM} and in case ${ODL_STREAM} is at least ${lower_bound},
228     ...    run keyword defined before ELSE statement otherwise run keyword defined after ELSE statement and return its value.
229     [Arguments]    ${lower_bound}    @{varargs}
230     ${position}    Collections.Get_Index_From_List    ${varargs}    \ELSE
231     IF    "${position}" == "-1"
232         BuiltIn.Fail    Missing else statement in defined expresion
233     END
234     ${varargs_if}    Collections.Get_Slice_From_List    ${varargs}    0    ${position}
235     ${varargs_else}    Collections.Get_Slice_From_List    ${varargs}    ${position+1}
236     ${args_if}    ${kwargs_if}    CompareStream__Convert_Input    @{varargs_if}
237     ${args_else}    ${kwargs_else}    CompareStream__Convert_Input    @{varargs_else}
238     IF    ${Stream_dict}[${ODL_STREAM}] >= ${Stream_dict}[${lower_bound}]
239         ${resp}    BuiltIn.Run_Keyword    @{args_if}    &{kwargs_if}
240     ELSE
241         ${resp}    BuiltIn.Run_Keyword    @{args_else}    &{kwargs_else}
242     END
243     RETURN    ${resp}
244
245 Run_Keyword_If_At_Most
246     [Documentation]    Compare ${upper_bound} to ${ODL_STREAM} and in case ${ODL_STREAM} is at most ${upper_bound},
247     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
248     [Arguments]    ${upper_bound}    ${kw_name}    @{varargs}    &{kwargs}
249     BuiltIn.Run_Keyword_And_Return_If
250     ...    ${Stream_dict}[${ODL_STREAM}] <= ${Stream_dict}[${upper_bound}]
251     ...    ${kw_name}
252     ...    @{varargs}
253     ...    &{kwargs}
254
255 Run_Keyword_If_At_Most_Else
256     [Documentation]    Compare ${upper_bound} to ${ODL_STREAM} and in case ${ODL_STREAM} is at most ${upper_bound},
257     ...    run keyword defined before ELSE statement otherwise run keyword defined after ELSE statement and return its value.
258     [Arguments]    ${upper_bound}    @{varargs}
259     ${position}    Collections.Get_Index_From_List    ${varargs}    \ELSE
260     IF    "${position}" == "-1"
261         BuiltIn.Fail    Missing else statement in defined expresion
262     END
263     ${varargs_if}    Collections.Get_Slice_From_List    ${varargs}    0    ${position}
264     ${varargs_else}    Collections.Get_Slice_From_List    ${varargs}    ${position+1}
265     ${args_if}    ${kwargs_if}    CompareStream__Convert_Input    @{varargs_if}
266     ${args_else}    ${kwargs_else}    CompareStream__Convert_Input    @{varargs_else}
267     IF    ${Stream_dict}[${ODL_STREAM}] <= ${Stream_dict}[${upper_bound}]
268         ${resp}    BuiltIn.Run_Keyword    @{args_if}    &{kwargs_if}
269     ELSE
270         ${resp}    BuiltIn.Run_Keyword    @{args_else}    &{kwargs_else}
271     END
272     RETURN    ${resp}
273
274 Run_Keyword_If_More_Than
275     [Documentation]    Compare ${lower_bound} to ${ODL_STREAM} and in case ${ODL_STREAM} is more than ${lower_bound},
276     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
277     [Arguments]    ${lower_bound}    ${kw_name}    @{varargs}    &{kwargs}
278     BuiltIn.Run_Keyword_And_Return_If
279     ...    ${Stream_dict}[${ODL_STREAM}] > ${Stream_dict}[${lower_bound}]
280     ...    ${kw_name}
281     ...    @{varargs}
282     ...    &{kwargs}
283
284 Run_Keyword_If_Equals
285     [Documentation]    Compare ${stream} to ${ODL_STREAM} and in case ${ODL_STREAM} equals ${stream},
286     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
287     [Arguments]    ${stream}    ${kw_name}    @{varargs}    &{kwargs}
288     BuiltIn.Run_Keyword_And_Return_If
289     ...    ${Stream_dict}[${ODL_STREAM}] == ${Stream_dict}[${stream}]
290     ...    ${kw_name}
291     ...    @{varargs}
292     ...    &{kwargs}
293
294 Run_Keyword_If_Equals_Else
295     [Documentation]    Compare ${stream} to ${ODL_STREAM} and in case ${ODL_STREAM} equals ${stream},
296     ...    run keyword defined before ELSE statement otherwise run keyword defined after ELSE statement and return its value.
297     [Arguments]    ${stream}    @{varargs}
298     ${position}    Collections.Get_Index_From_List    ${varargs}    \ELSE
299     IF    "${position}" == "-1"
300         BuiltIn.Fail    Missing else statement in defined expresion
301     END
302     ${varargs_if}    Collections.Get_Slice_From_List    ${varargs}    0    ${position}
303     ${varargs_else}    Collections.Get_Slice_From_List    ${varargs}    ${position+1}
304     ${args_if}    ${kwargs_if}    CompareStream__Convert_Input    @{varargs_if}
305     ${args_else}    ${kwargs_else}    CompareStream__Convert_Input    @{varargs_else}
306     IF    ${Stream_dict}[${ODL_STREAM}] == ${Stream_dict}[${stream}]
307         ${resp}    BuiltIn.Run_Keyword    @{args_if}    &{kwargs_if}
308     ELSE
309         ${resp}    BuiltIn.Run_Keyword    @{args_else}    &{kwargs_else}
310     END
311     RETURN    ${resp}
312
313 Run_Keyword_If_Less_Than
314     [Documentation]    Compare ${lower_bound} to ${ODL_STREAM} and in case ${ODL_STREAM} is less than ${lower_bound},
315     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
316     [Arguments]    ${lower_bound}    ${kw_name}    @{varargs}    &{kwargs}
317     BuiltIn.Run_Keyword_And_Return_If
318     ...    ${Stream_dict}[${ODL_STREAM}] < ${Stream_dict}[${lower_bound}]
319     ...    ${kw_name}
320     ...    @{varargs}
321     ...    &{kwargs}
322
323 Run_Keyword_If_At_Least_Carbon
324     [Documentation]    Compare carbon to ${ODL_STREAM} and in case ${ODL_STREAM} is at least carbon,
325     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
326     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
327     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Least    carbon    ${kw_name}    @{varargs}    &{kwargs}
328
329 Run_Keyword_If_At_Least_Nitrogen
330     [Documentation]    Compare nitrogen to ${ODL_STREAM} and in case ${ODL_STREAM} is at least nitrogen,
331     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
332     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
333     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Least    nitrogen    ${kw_name}    @{varargs}    &{kwargs}
334
335 Run_Keyword_If_At_Least_Oxygen
336     [Documentation]    Compare oxygen to ${ODL_STREAM} and in case ${ODL_STREAM} is at least oxygen,
337     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
338     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
339     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Least    oxygen    ${kw_name}    @{varargs}    &{kwargs}
340
341 Run_Keyword_If_At_Least_Fluorine
342     [Documentation]    Compare fluorine to ${ODL_STREAM} and in case ${ODL_STREAM} is at least fluorine,
343     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
344     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
345     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Least    fluorine    ${kw_name}    @{varargs}    &{kwargs}
346
347 Run_Keyword_If_At_Least_Neon
348     [Documentation]    Compare neon to ${ODL_STREAM} and in case ${ODL_STREAM} is at least neon,
349     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
350     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
351     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Least    neon    ${kw_name}    @{varargs}    &{kwargs}
352
353 Run_Keyword_If_At_Least_Sodium
354     [Documentation]    Compare sodium to ${ODL_STREAM} and in case ${ODL_STREAM} is at least sodium,
355     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
356     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
357     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Least    sodium    ${kw_name}    @{varargs}    &{kwargs}
358
359 Run_Keyword_If_At_Least_Magnesium
360     [Documentation]    Compare magnesium to ${ODL_STREAM} and in case ${ODL_STREAM} is at least magnesium,
361     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
362     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
363     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Least    magnesium    ${kw_name}    @{varargs}    &{kwargs}
364
365 Run_Keyword_If_At_Least_Aluminium
366     [Documentation]    Compare aluminium to ${ODL_STREAM} and in case ${ODL_STREAM} is at least aluminium,
367     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
368     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
369     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Least    aluminium    ${kw_name}    @{varargs}    &{kwargs}
370
371 Run_Keyword_If_At_Least_Silicon
372     [Documentation]    Compare silicon to ${ODL_STREAM} and in case ${ODL_STREAM} is at least silicon,
373     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
374     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
375     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Least    silicon    ${kw_name}    @{varargs}    &{kwargs}
376
377 Run_Keyword_If_At_Least_Phosphorus
378     [Documentation]    Compare phosphorus to ${ODL_STREAM} and in case ${ODL_STREAM} is at least phosphorus,
379     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
380     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
381     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Least    phosphorus    ${kw_name}    @{varargs}    &{kwargs}
382
383 Run_Keyword_If_At_Least_Sulfur
384     [Documentation]    Compare sulfur to ${ODL_STREAM} and in case ${ODL_STREAM} is at least sulfur,
385     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
386     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
387     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Least    sulfur    ${kw_name}    @{varargs}    &{kwargs}
388
389 Run_Keyword_If_At_Least_Chlorine
390     [Documentation]    Compare chlorine to ${ODL_STREAM} and in case ${ODL_STREAM} is at least chlorine,
391     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
392     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
393     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Least    chlorine    ${kw_name}    @{varargs}    &{kwargs}
394
395 Run_Keyword_If_At_Most_Carbon
396     [Documentation]    Compare carbon to ${ODL_STREAM} and in case ${ODL_STREAM} is at most carbon,
397     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
398     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
399     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Most    carbon    ${kw_name}    @{varargs}    &{kwargs}
400
401 Run_Keyword_If_At_Most_Nitrogen
402     [Documentation]    Compare nitrogen to ${ODL_STREAM} and in case ${ODL_STREAM} is at most nitrogen,
403     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
404     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
405     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Most    nitrogen    ${kw_name}    @{varargs}    &{kwargs}
406
407 Run_Keyword_If_At_Most_Oxygen
408     [Documentation]    Compare oxygen to ${ODL_STREAM} and in case ${ODL_STREAM} is at most oxygen,
409     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
410     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
411     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Most    oxygen    ${kw_name}    @{varargs}    &{kwargs}
412
413 Run_Keyword_If_At_Most_Fluorine
414     [Documentation]    Compare fluorine to ${ODL_STREAM} and in case ${ODL_STREAM} is at most fluroine,
415     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
416     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
417     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Most    fluorine    ${kw_name}    @{varargs}    &{kwargs}
418
419 Run_Keyword_If_At_Most_Neon
420     [Documentation]    Compare neon to ${ODL_STREAM} and in case ${ODL_STREAM} is at most neon,
421     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
422     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
423     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Most    neon    ${kw_name}    @{varargs}    &{kwargs}
424
425 Run_Keyword_If_At_Most_Sodium
426     [Documentation]    Compare sodium to ${ODL_STREAM} and in case ${ODL_STREAM} is at most sodium,
427     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
428     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
429     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Most    sodium    ${kw_name}    @{varargs}    &{kwargs}
430
431 Run_Keyword_If_At_Most_Magnesium
432     [Documentation]    Compare magnesium to ${ODL_STREAM} and in case ${ODL_STREAM} is at most magnesium,
433     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
434     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
435     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Most    magnesium    ${kw_name}    @{varargs}    &{kwargs}
436
437 Run_Keyword_If_At_Most_Aluminium
438     [Documentation]    Compare aluminium to ${ODL_STREAM} and in case ${ODL_STREAM} is at most aluminium,
439     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
440     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
441     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Most    aluminium    ${kw_name}    @{varargs}    &{kwargs}
442
443 Run_Keyword_If_At_Most_Silicon
444     [Documentation]    Compare silicon to ${ODL_STREAM} and in case ${ODL_STREAM} is at most silicon,
445     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
446     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
447     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Most    silicon    ${kw_name}    @{varargs}    &{kwargs}
448
449 Run_Keyword_If_At_Most_Phosphorus
450     [Documentation]    Compare phosphorus to ${ODL_STREAM} and in case ${ODL_STREAM} is at most phosphorus,
451     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
452     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
453     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Most    phosphorus    ${kw_name}    @{varargs}    &{kwargs}
454
455 Run_Keyword_If_At_Most_Sulfur
456     [Documentation]    Compare sulfur to ${ODL_STREAM} and in case ${ODL_STREAM} is at most sulfur,
457     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
458     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
459     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Most    sulfur    ${kw_name}    @{varargs}    &{kwargs}
460
461 Run_Keyword_If_At_Most_Chlorine
462     [Documentation]    Compare chlorine to ${ODL_STREAM} and in case ${ODL_STREAM} is at most chlorine,
463     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
464     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
465     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Most    chlorine    ${kw_name}    @{varargs}    &{kwargs}
466
467 Run_Keyword_If_More_Than_Carbon
468     [Documentation]    Compare carbon to ${ODL_STREAM} and in case ${ODL_STREAM} is more than carbon,
469     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
470     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
471     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_More_Than    carbon    ${kw_name}    @{varargs}    &{kwargs}
472
473 Run_Keyword_If_More_Than_Nitrogen
474     [Documentation]    Compare nitrogen to ${ODL_STREAM} and in case ${ODL_STREAM} is more than nitrogen,
475     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
476     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
477     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_More_Than    nitrogen    ${kw_name}    @{varargs}    &{kwargs}
478
479 Run_Keyword_If_More_Than_Oxygen
480     [Documentation]    Compare oxygen to ${ODL_STREAM} and in case ${ODL_STREAM} is more than oxygen,
481     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
482     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
483     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_More_Than    oxygen    ${kw_name}    @{varargs}    &{kwargs}
484
485 Run_Keyword_If_More_Than_Fluorine
486     [Documentation]    Compare fluorine to ${ODL_STREAM} and in case ${ODL_STREAM} is more than fluorine,
487     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
488     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
489     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_More_Than    fluorine    ${kw_name}    @{varargs}    &{kwargs}
490
491 Run_Keyword_If_More_Than_Neon
492     [Documentation]    Compare neon to ${ODL_STREAM} and in case ${ODL_STREAM} is more than neon,
493     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
494     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
495     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_More_Than    neon    ${kw_name}    @{varargs}    &{kwargs}
496
497 Run_Keyword_If_More_Than_Sodium
498     [Documentation]    Compare sodium to ${ODL_STREAM} and in case ${ODL_STREAM} is more than sodium,
499     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
500     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
501     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_More_Than    sodium    ${kw_name}    @{varargs}    &{kwargs}
502
503 Run_Keyword_If_More_Than_Magnesium
504     [Documentation]    Compare magnesium to ${ODL_STREAM} and in case ${ODL_STREAM} is more than magnesium,
505     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
506     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
507     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_More_Than    magnesium    ${kw_name}    @{varargs}    &{kwargs}
508
509 Run_Keyword_If_More_Than_Aluminium
510     [Documentation]    Compare aluminium to ${ODL_STREAM} and in case ${ODL_STREAM} is more than aluminium,
511     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
512     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
513     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_More_Than    aluminium    ${kw_name}    @{varargs}    &{kwargs}
514
515 Run_Keyword_If_More_Than_Silicon
516     [Documentation]    Compare silicon to ${ODL_STREAM} and in case ${ODL_STREAM} is more than silicon,
517     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
518     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
519     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_More_Than    silicon    ${kw_name}    @{varargs}    &{kwargs}
520
521 Run_Keyword_If_More_Than_Phosphorus
522     [Documentation]    Compare phosphorus to ${ODL_STREAM} and in case ${ODL_STREAM} is more than phosphorus,
523     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
524     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
525     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_More_Than    phosphorus    ${kw_name}    @{varargs}    &{kwargs}
526
527 Run_Keyword_If_More_Than_Sulfur
528     [Documentation]    Compare sulfur to ${ODL_STREAM} and in case ${ODL_STREAM} is more than sulfur,
529     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
530     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
531     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_More_Than    sulfur    ${kw_name}    @{varargs}    &{kwargs}
532
533 Run_Keyword_If_More_Than_Chlorine
534     [Documentation]    Compare chlorine to ${ODL_STREAM} and in case ${ODL_STREAM} is more than chlorine,
535     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
536     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
537     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_More_Than    chlorine    ${kw_name}    @{varargs}    &{kwargs}
538
539 Run_Keyword_If_Less_Than_Carbon
540     [Documentation]    Compare carbon to ${ODL_STREAM} and in case ${ODL_STREAM} is less than carbon,
541     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
542     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
543     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_Less_Than    carbon    ${kw_name}    @{varargs}    &{kwargs}
544
545 Run_Keyword_If_Less_Than_Nitrogen
546     [Documentation]    Compare nitrogen to ${ODL_STREAM} and in case ${ODL_STREAM} is less than nitrogen,
547     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
548     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
549     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_Less_Than    nitrogen    ${kw_name}    @{varargs}    &{kwargs}
550
551 Run_Keyword_If_Less_Than_Oxygen
552     [Documentation]    Compare oxygen to ${ODL_STREAM} and in case ${ODL_STREAM} is less than oxygen,
553     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
554     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
555     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_Less_Than    oxygen    ${kw_name}    @{varargs}    &{kwargs}
556
557 Run_Keyword_If_Less_Than_Fluorine
558     [Documentation]    Compare fluorine to ${ODL_STREAM} and in case ${ODL_STREAM} is less than fluorine,
559     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
560     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
561     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_Less_Than    fluorine    ${kw_name}    @{varargs}    &{kwargs}
562
563 Run_Keyword_If_Less_Than_Neon
564     [Documentation]    Compare neon to ${ODL_STREAM} and in case ${ODL_STREAM} is less than neon,
565     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
566     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
567     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_Less_Than    neon    ${kw_name}    @{varargs}    &{kwargs}
568
569 Run_Keyword_If_Less_Than_Sodium
570     [Documentation]    Compare sodium to ${ODL_STREAM} and in case ${ODL_STREAM} is less than sodium,
571     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
572     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
573     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_Less_Than    sodium    ${kw_name}    @{varargs}    &{kwargs}
574
575 Run_Keyword_If_Less_Than_Magnesium
576     [Documentation]    Compare magnesium to ${ODL_STREAM} and in case ${ODL_STREAM} is less than magnesium,
577     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
578     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
579     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_Less_Than    magnesium    ${kw_name}    @{varargs}    &{kwargs}
580
581 Run_Keyword_If_Less_Than_Aluminium
582     [Documentation]    Compare aluminium to ${ODL_STREAM} and in case ${ODL_STREAM} is less than aluminium,
583     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
584     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
585     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_Less_Than    aluminium    ${kw_name}    @{varargs}    &{kwargs}
586
587 Run_Keyword_If_Less_Than_Silicon
588     [Documentation]    Compare silicon to ${ODL_STREAM} and in case ${ODL_STREAM} is less than silicon,
589     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
590     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
591     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_Less_Than    silicon    ${kw_name}    @{varargs}    &{kwargs}
592
593 Run_Keyword_If_Less_Than_Phosphorus
594     [Documentation]    Compare phosphorus to ${ODL_STREAM} and in case ${ODL_STREAM} is less than phosphorus,
595     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
596     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
597     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_Less_Than    phosphorus    ${kw_name}    @{varargs}    &{kwargs}
598
599 Run_Keyword_If_Less_Than_Sulfur
600     [Documentation]    Compare sulfur to ${ODL_STREAM} and in case ${ODL_STREAM} is less than sulfur,
601     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
602     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
603     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_Less_Than    sulfur    ${kw_name}    @{varargs}    &{kwargs}
604
605 Run_Keyword_If_Less_Than_Chlorine
606     [Documentation]    Compare chlorine to ${ODL_STREAM} and in case ${ODL_STREAM} is less than chlorine,
607     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
608     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
609     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_Less_Than    chlorine    ${kw_name}    @{varargs}    &{kwargs}