Support only Nitrogen+ distributions
[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 ...                 nitrogen=${7}
15 ...                 oxygen=${8}
16 ...                 fluorine=${9}
17 ...                 neon=${10}
18 ...                 sodium=${11}
19 ...                 magnesium=${12}
20 ...                 aluminium=${13}
21 ...                 silicon=${14}
22 ...                 phosphorus=${15}
23 ...                 sulfur=${16}
24 ...                 chlorine=${17}
25 ...                 argon=${18}
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_Oxygen
51     [Documentation]    Compare oxygen to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at least oxygen,
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    oxygen    ${value_if_true}    ${value_if_false}
55
56 Set_Variable_If_At_Least_Fluorine
57     [Documentation]    Compare fluorine to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at least fluorine,
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    fluorine    ${value_if_true}    ${value_if_false}
61
62 Set_Variable_If_At_Least_Neon
63     [Documentation]    Compare neon to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at least neon,
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    neon    ${value_if_true}    ${value_if_false}
67
68 Set_Variable_If_At_Least_Sodium
69     [Documentation]    Compare neon to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at least sodium,
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    sodium    ${value_if_true}    ${value_if_false}
73
74 Set_Variable_If_At_Least_Magnesium
75     [Documentation]    Compare magnesium to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at least magnesium, return ${value_if_false} otherwise.
76     [Arguments]    ${value_if_true}    ${value_if_false}
77     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Least    magnesium    ${value_if_true}    ${value_if_false}
78
79 Set_Variable_If_At_Least_Aluminium
80     [Documentation]    Compare aluminium to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at least aluminium, return ${value_if_false} otherwise.
81     [Arguments]    ${value_if_true}    ${value_if_false}
82     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Least    aluminium    ${value_if_true}    ${value_if_false}
83
84 Set_Variable_If_At_Least_Silicon
85     [Documentation]    Compare silicon to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at least silicon, return ${value_if_false} otherwise.
86     [Arguments]    ${value_if_true}    ${value_if_false}
87     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Least    silicon    ${value_if_true}    ${value_if_false}
88
89 Set_Variable_If_At_Least_Phosphorus
90     [Documentation]    Compare phosphorus to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at least phosphorus, return ${value_if_false} otherwise.
91     [Arguments]    ${value_if_true}    ${value_if_false}
92     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Least    phosphorus    ${value_if_true}    ${value_if_false}
93
94 Set_Variable_If_At_Least_Sulfur
95     [Documentation]    Compare sulfur to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at least sulfur, return ${value_if_false} otherwise.
96     [Arguments]    ${value_if_true}    ${value_if_false}
97     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Least    sulfur    ${value_if_true}    ${value_if_false}
98
99 Set_Variable_If_At_Least_Chlorine
100     [Documentation]    Compare chlorine to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at least chlorine, return ${value_if_false} otherwise.
101     [Arguments]    ${value_if_true}    ${value_if_false}
102     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Least    chlorine    ${value_if_true}    ${value_if_false}
103
104 Set_Variable_If_At_Most_Nitrogen
105     [Documentation]    Compare nitrogen to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most nitrogen,
106     ...    return ${value_if_false} otherwise.
107     [Arguments]    ${value_if_true}    ${value_if_false}
108     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Most    nitrogen    ${value_if_true}    ${value_if_false}
109
110 Set_Variable_If_At_Most_Oxygen
111     [Documentation]    Compare oxygen to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most oxygen,
112     ...    return ${value_if_false} otherwise.
113     [Arguments]    ${value_if_true}    ${value_if_false}
114     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Most    oxygen    ${value_if_true}    ${value_if_false}
115
116 Set_Variable_If_At_Most_Fluorine
117     [Documentation]    Compare fluorine to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most fluorine,
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    fluorine    ${value_if_true}    ${value_if_false}
121
122 Set_Variable_If_At_Most_Neon
123     [Documentation]    Compare neon to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most neon,
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    neon    ${value_if_true}    ${value_if_false}
127
128 Set_Variable_If_At_Most_Sodium
129     [Documentation]    Compare neon to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most sodium,
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    sodium    ${value_if_true}    ${value_if_false}
133
134 Set_Variable_If_At_Most_Magnesium
135     [Documentation]    Compare magnesium to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most magnesium,
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    magnesium    ${value_if_true}    ${value_if_false}
139
140 Set_Variable_If_At_Most_Aluminium
141     [Documentation]    Compare aluminium to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most aluminium,
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    aluminium    ${value_if_true}    ${value_if_false}
145
146 Set_Variable_If_At_Most_Silicon
147     [Documentation]    Compare silicon to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most silicon,
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    silicon    ${value_if_true}    ${value_if_false}
151
152 Set_Variable_If_At_Most_Phosphorus
153     [Documentation]    Compare phosphorus to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most phosphorus,
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    phosphorus    ${value_if_true}    ${value_if_false}
157
158 Set_Variable_If_At_Most_Sulfur
159     [Documentation]    Compare sulfur to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most sulfur,
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    sulfur    ${value_if_true}    ${value_if_false}
163
164 Set_Variable_If_At_Most_Chlorine
165     [Documentation]    Compare chlorine to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most chlorine,
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    chlorine    ${value_if_true}    ${value_if_false}
169
170 CompareStream__Convert_Input
171     [Documentation]    Splits arguments into args and kwargs is used in Run_Keyword_If_At_Least_Else and Run_Keyword_If_At_Most_Else.
172     ...    The problem is, when the string contains =, but it is not a named argument (name=value). There can be many values containing =, but
173     ...    for sure it is present in xmls. If the string starts with "<" it will be treated as it is xml and splitting for
174     ...    name and value will not be executed.
175     ...    If named argument is passed into this kw, only string data are supported e.g. name=string. Complex variables such as lists or dictionaries
176     ...    are not supported.
177     [Arguments]    @{arguments}
178     ${args}    BuiltIn.Create_List
179     ${kwargs}    BuiltIn.Create_Dictionary
180     FOR    ${arg}    IN    @{arguments}
181         ${arg}    BuiltIn.Convert_To_String    ${arg}
182         ${removed}    String.Remove_String    ${arg}    \n    ${Space}    \t
183         ...    \r
184         IF    "${removed[0]}" == "<"
185             ${splitted}    BuiltIn.Create List    ${arg}
186         ELSE
187             ${splitted}    String.Split_String    ${arg}    separator==    max_split=1
188         END
189         ${len}    BuiltIn.Get_Length    ${splitted}
190         IF    ${len}==1
191             Collections.Append_To_List    ${args}    ${splitted}[0]
192         ELSE
193             Collections.Set_To_Dictionary    ${kwargs}    @{splitted}
194         END
195     END
196     RETURN    ${args}    ${kwargs}
197
198 Run_Keyword_If_At_Least
199     [Documentation]    Compare ${lower_bound} to ${ODL_STREAM} and in case ${ODL_STREAM} is at least ${lower_bound},
200     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
201     [Arguments]    ${lower_bound}    ${kw_name}    @{varargs}    &{kwargs}
202     BuiltIn.Run_Keyword_And_Return_If
203     ...    ${Stream_dict}[${ODL_STREAM}] >= ${Stream_dict}[${lower_bound}]
204     ...    ${kw_name}
205     ...    @{varargs}
206     ...    &{kwargs}
207
208 Run_Keyword_If_At_Least_Else
209     [Documentation]    Compare ${lower_bound} to ${ODL_STREAM} and in case ${ODL_STREAM} is at least ${lower_bound},
210     ...    run keyword defined before ELSE statement otherwise run keyword defined after ELSE statement and return its value.
211     [Arguments]    ${lower_bound}    @{varargs}
212     ${position}    Collections.Get_Index_From_List    ${varargs}    \ELSE
213     IF    "${position}" == "-1"
214         BuiltIn.Fail    Missing else statement in defined expresion
215     END
216     ${varargs_if}    Collections.Get_Slice_From_List    ${varargs}    0    ${position}
217     ${varargs_else}    Collections.Get_Slice_From_List    ${varargs}    ${position+1}
218     ${args_if}    ${kwargs_if}    CompareStream__Convert_Input    @{varargs_if}
219     ${args_else}    ${kwargs_else}    CompareStream__Convert_Input    @{varargs_else}
220     IF    ${Stream_dict}[${ODL_STREAM}] >= ${Stream_dict}[${lower_bound}]
221         ${resp}    BuiltIn.Run_Keyword    @{args_if}    &{kwargs_if}
222     ELSE
223         ${resp}    BuiltIn.Run_Keyword    @{args_else}    &{kwargs_else}
224     END
225     RETURN    ${resp}
226
227 Run_Keyword_If_At_Most
228     [Documentation]    Compare ${upper_bound} to ${ODL_STREAM} and in case ${ODL_STREAM} is at most ${upper_bound},
229     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
230     [Arguments]    ${upper_bound}    ${kw_name}    @{varargs}    &{kwargs}
231     BuiltIn.Run_Keyword_And_Return_If
232     ...    ${Stream_dict}[${ODL_STREAM}] <= ${Stream_dict}[${upper_bound}]
233     ...    ${kw_name}
234     ...    @{varargs}
235     ...    &{kwargs}
236
237 Run_Keyword_If_At_Most_Else
238     [Documentation]    Compare ${upper_bound} to ${ODL_STREAM} and in case ${ODL_STREAM} is at most ${upper_bound},
239     ...    run keyword defined before ELSE statement otherwise run keyword defined after ELSE statement and return its value.
240     [Arguments]    ${upper_bound}    @{varargs}
241     ${position}    Collections.Get_Index_From_List    ${varargs}    \ELSE
242     IF    "${position}" == "-1"
243         BuiltIn.Fail    Missing else statement in defined expresion
244     END
245     ${varargs_if}    Collections.Get_Slice_From_List    ${varargs}    0    ${position}
246     ${varargs_else}    Collections.Get_Slice_From_List    ${varargs}    ${position+1}
247     ${args_if}    ${kwargs_if}    CompareStream__Convert_Input    @{varargs_if}
248     ${args_else}    ${kwargs_else}    CompareStream__Convert_Input    @{varargs_else}
249     IF    ${Stream_dict}[${ODL_STREAM}] <= ${Stream_dict}[${upper_bound}]
250         ${resp}    BuiltIn.Run_Keyword    @{args_if}    &{kwargs_if}
251     ELSE
252         ${resp}    BuiltIn.Run_Keyword    @{args_else}    &{kwargs_else}
253     END
254     RETURN    ${resp}
255
256 Run_Keyword_If_More_Than
257     [Documentation]    Compare ${lower_bound} to ${ODL_STREAM} and in case ${ODL_STREAM} is more than ${lower_bound},
258     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
259     [Arguments]    ${lower_bound}    ${kw_name}    @{varargs}    &{kwargs}
260     BuiltIn.Run_Keyword_And_Return_If
261     ...    ${Stream_dict}[${ODL_STREAM}] > ${Stream_dict}[${lower_bound}]
262     ...    ${kw_name}
263     ...    @{varargs}
264     ...    &{kwargs}
265
266 Run_Keyword_If_Equals
267     [Documentation]    Compare ${stream} to ${ODL_STREAM} and in case ${ODL_STREAM} equals ${stream},
268     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
269     [Arguments]    ${stream}    ${kw_name}    @{varargs}    &{kwargs}
270     BuiltIn.Run_Keyword_And_Return_If
271     ...    ${Stream_dict}[${ODL_STREAM}] == ${Stream_dict}[${stream}]
272     ...    ${kw_name}
273     ...    @{varargs}
274     ...    &{kwargs}
275
276 Run_Keyword_If_Equals_Else
277     [Documentation]    Compare ${stream} to ${ODL_STREAM} and in case ${ODL_STREAM} equals ${stream},
278     ...    run keyword defined before ELSE statement otherwise run keyword defined after ELSE statement and return its value.
279     [Arguments]    ${stream}    @{varargs}
280     ${position}    Collections.Get_Index_From_List    ${varargs}    \ELSE
281     IF    "${position}" == "-1"
282         BuiltIn.Fail    Missing else statement in defined expresion
283     END
284     ${varargs_if}    Collections.Get_Slice_From_List    ${varargs}    0    ${position}
285     ${varargs_else}    Collections.Get_Slice_From_List    ${varargs}    ${position+1}
286     ${args_if}    ${kwargs_if}    CompareStream__Convert_Input    @{varargs_if}
287     ${args_else}    ${kwargs_else}    CompareStream__Convert_Input    @{varargs_else}
288     IF    ${Stream_dict}[${ODL_STREAM}] == ${Stream_dict}[${stream}]
289         ${resp}    BuiltIn.Run_Keyword    @{args_if}    &{kwargs_if}
290     ELSE
291         ${resp}    BuiltIn.Run_Keyword    @{args_else}    &{kwargs_else}
292     END
293     RETURN    ${resp}
294
295 Run_Keyword_If_Less_Than
296     [Documentation]    Compare ${lower_bound} to ${ODL_STREAM} and in case ${ODL_STREAM} is less than ${lower_bound},
297     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
298     [Arguments]    ${lower_bound}    ${kw_name}    @{varargs}    &{kwargs}
299     BuiltIn.Run_Keyword_And_Return_If
300     ...    ${Stream_dict}[${ODL_STREAM}] < ${Stream_dict}[${lower_bound}]
301     ...    ${kw_name}
302     ...    @{varargs}
303     ...    &{kwargs}
304
305 Run_Keyword_If_At_Least_Oxygen
306     [Documentation]    Compare oxygen to ${ODL_STREAM} and in case ${ODL_STREAM} is at least oxygen,
307     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
308     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
309     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Least    oxygen    ${kw_name}    @{varargs}    &{kwargs}
310
311 Run_Keyword_If_At_Least_Fluorine
312     [Documentation]    Compare fluorine to ${ODL_STREAM} and in case ${ODL_STREAM} is at least fluorine,
313     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
314     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
315     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Least    fluorine    ${kw_name}    @{varargs}    &{kwargs}
316
317 Run_Keyword_If_At_Least_Neon
318     [Documentation]    Compare neon to ${ODL_STREAM} and in case ${ODL_STREAM} is at least neon,
319     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
320     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
321     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Least    neon    ${kw_name}    @{varargs}    &{kwargs}
322
323 Run_Keyword_If_At_Least_Sodium
324     [Documentation]    Compare sodium to ${ODL_STREAM} and in case ${ODL_STREAM} is at least sodium,
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    sodium    ${kw_name}    @{varargs}    &{kwargs}
328
329 Run_Keyword_If_At_Least_Magnesium
330     [Documentation]    Compare magnesium to ${ODL_STREAM} and in case ${ODL_STREAM} is at least magnesium,
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    magnesium    ${kw_name}    @{varargs}    &{kwargs}
334
335 Run_Keyword_If_At_Least_Aluminium
336     [Documentation]    Compare aluminium to ${ODL_STREAM} and in case ${ODL_STREAM} is at least aluminium,
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    aluminium    ${kw_name}    @{varargs}    &{kwargs}
340
341 Run_Keyword_If_At_Least_Silicon
342     [Documentation]    Compare silicon to ${ODL_STREAM} and in case ${ODL_STREAM} is at least silicon,
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    silicon    ${kw_name}    @{varargs}    &{kwargs}
346
347 Run_Keyword_If_At_Least_Phosphorus
348     [Documentation]    Compare phosphorus to ${ODL_STREAM} and in case ${ODL_STREAM} is at least phosphorus,
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    phosphorus    ${kw_name}    @{varargs}    &{kwargs}
352
353 Run_Keyword_If_At_Least_Sulfur
354     [Documentation]    Compare sulfur to ${ODL_STREAM} and in case ${ODL_STREAM} is at least sulfur,
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    sulfur    ${kw_name}    @{varargs}    &{kwargs}
358
359 Run_Keyword_If_At_Least_Chlorine
360     [Documentation]    Compare chlorine to ${ODL_STREAM} and in case ${ODL_STREAM} is at least chlorine,
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    chlorine    ${kw_name}    @{varargs}    &{kwargs}
364
365 Run_Keyword_If_At_Most_Nitrogen
366     [Documentation]    Compare nitrogen to ${ODL_STREAM} and in case ${ODL_STREAM} is at most nitrogen,
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_Most    nitrogen    ${kw_name}    @{varargs}    &{kwargs}
370
371 Run_Keyword_If_At_Most_Oxygen
372     [Documentation]    Compare oxygen to ${ODL_STREAM} and in case ${ODL_STREAM} is at most oxygen,
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_Most    oxygen    ${kw_name}    @{varargs}    &{kwargs}
376
377 Run_Keyword_If_At_Most_Fluorine
378     [Documentation]    Compare fluorine to ${ODL_STREAM} and in case ${ODL_STREAM} is at most fluroine,
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_Most    fluorine    ${kw_name}    @{varargs}    &{kwargs}
382
383 Run_Keyword_If_At_Most_Neon
384     [Documentation]    Compare neon to ${ODL_STREAM} and in case ${ODL_STREAM} is at most neon,
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_Most    neon    ${kw_name}    @{varargs}    &{kwargs}
388
389 Run_Keyword_If_At_Most_Sodium
390     [Documentation]    Compare sodium to ${ODL_STREAM} and in case ${ODL_STREAM} is at most sodium,
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_Most    sodium    ${kw_name}    @{varargs}    &{kwargs}
394
395 Run_Keyword_If_At_Most_Magnesium
396     [Documentation]    Compare magnesium to ${ODL_STREAM} and in case ${ODL_STREAM} is at most magnesium,
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    magnesium    ${kw_name}    @{varargs}    &{kwargs}
400
401 Run_Keyword_If_At_Most_Aluminium
402     [Documentation]    Compare aluminium to ${ODL_STREAM} and in case ${ODL_STREAM} is at most aluminium,
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    aluminium    ${kw_name}    @{varargs}    &{kwargs}
406
407 Run_Keyword_If_At_Most_Silicon
408     [Documentation]    Compare silicon to ${ODL_STREAM} and in case ${ODL_STREAM} is at most silicon,
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    silicon    ${kw_name}    @{varargs}    &{kwargs}
412
413 Run_Keyword_If_At_Most_Phosphorus
414     [Documentation]    Compare phosphorus to ${ODL_STREAM} and in case ${ODL_STREAM} is at most phosphorus,
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    phosphorus    ${kw_name}    @{varargs}    &{kwargs}
418
419 Run_Keyword_If_At_Most_Sulfur
420     [Documentation]    Compare sulfur to ${ODL_STREAM} and in case ${ODL_STREAM} is at most sulfur,
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    sulfur    ${kw_name}    @{varargs}    &{kwargs}
424
425 Run_Keyword_If_At_Most_Chlorine
426     [Documentation]    Compare chlorine to ${ODL_STREAM} and in case ${ODL_STREAM} is at most chlorine,
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    chlorine    ${kw_name}    @{varargs}    &{kwargs}
430
431 Run_Keyword_If_More_Than_Nitrogen
432     [Documentation]    Compare nitrogen to ${ODL_STREAM} and in case ${ODL_STREAM} is more than nitrogen,
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_More_Than    nitrogen    ${kw_name}    @{varargs}    &{kwargs}
436
437 Run_Keyword_If_More_Than_Oxygen
438     [Documentation]    Compare oxygen to ${ODL_STREAM} and in case ${ODL_STREAM} is more than oxygen,
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_More_Than    oxygen    ${kw_name}    @{varargs}    &{kwargs}
442
443 Run_Keyword_If_More_Than_Fluorine
444     [Documentation]    Compare fluorine to ${ODL_STREAM} and in case ${ODL_STREAM} is more than fluorine,
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_More_Than    fluorine    ${kw_name}    @{varargs}    &{kwargs}
448
449 Run_Keyword_If_More_Than_Neon
450     [Documentation]    Compare neon to ${ODL_STREAM} and in case ${ODL_STREAM} is more than neon,
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_More_Than    neon    ${kw_name}    @{varargs}    &{kwargs}
454
455 Run_Keyword_If_More_Than_Sodium
456     [Documentation]    Compare sodium to ${ODL_STREAM} and in case ${ODL_STREAM} is more than sodium,
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_More_Than    sodium    ${kw_name}    @{varargs}    &{kwargs}
460
461 Run_Keyword_If_More_Than_Magnesium
462     [Documentation]    Compare magnesium to ${ODL_STREAM} and in case ${ODL_STREAM} is more than magnesium,
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_More_Than    magnesium    ${kw_name}    @{varargs}    &{kwargs}
466
467 Run_Keyword_If_More_Than_Aluminium
468     [Documentation]    Compare aluminium to ${ODL_STREAM} and in case ${ODL_STREAM} is more than aluminium,
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    aluminium    ${kw_name}    @{varargs}    &{kwargs}
472
473 Run_Keyword_If_More_Than_Silicon
474     [Documentation]    Compare silicon to ${ODL_STREAM} and in case ${ODL_STREAM} is more than silicon,
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    silicon    ${kw_name}    @{varargs}    &{kwargs}
478
479 Run_Keyword_If_More_Than_Phosphorus
480     [Documentation]    Compare phosphorus to ${ODL_STREAM} and in case ${ODL_STREAM} is more than phosphorus,
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    phosphorus    ${kw_name}    @{varargs}    &{kwargs}
484
485 Run_Keyword_If_More_Than_Sulfur
486     [Documentation]    Compare sulfur to ${ODL_STREAM} and in case ${ODL_STREAM} is more than sulfur,
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    sulfur    ${kw_name}    @{varargs}    &{kwargs}
490
491 Run_Keyword_If_More_Than_Chlorine
492     [Documentation]    Compare chlorine to ${ODL_STREAM} and in case ${ODL_STREAM} is more than chlorine,
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    chlorine    ${kw_name}    @{varargs}    &{kwargs}
496
497 Run_Keyword_If_Less_Than_Nitrogen
498     [Documentation]    Compare nitrogen to ${ODL_STREAM} and in case ${ODL_STREAM} is less than nitrogen,
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_Less_Than    nitrogen    ${kw_name}    @{varargs}    &{kwargs}
502
503 Run_Keyword_If_Less_Than_Oxygen
504     [Documentation]    Compare oxygen to ${ODL_STREAM} and in case ${ODL_STREAM} is less than oxygen,
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_Less_Than    oxygen    ${kw_name}    @{varargs}    &{kwargs}
508
509 Run_Keyword_If_Less_Than_Fluorine
510     [Documentation]    Compare fluorine to ${ODL_STREAM} and in case ${ODL_STREAM} is less than fluorine,
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_Less_Than    fluorine    ${kw_name}    @{varargs}    &{kwargs}
514
515 Run_Keyword_If_Less_Than_Neon
516     [Documentation]    Compare neon to ${ODL_STREAM} and in case ${ODL_STREAM} is less than neon,
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_Less_Than    neon    ${kw_name}    @{varargs}    &{kwargs}
520
521 Run_Keyword_If_Less_Than_Sodium
522     [Documentation]    Compare sodium to ${ODL_STREAM} and in case ${ODL_STREAM} is less than sodium,
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_Less_Than    sodium    ${kw_name}    @{varargs}    &{kwargs}
526
527 Run_Keyword_If_Less_Than_Magnesium
528     [Documentation]    Compare magnesium to ${ODL_STREAM} and in case ${ODL_STREAM} is less than magnesium,
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_Less_Than    magnesium    ${kw_name}    @{varargs}    &{kwargs}
532
533 Run_Keyword_If_Less_Than_Aluminium
534     [Documentation]    Compare aluminium to ${ODL_STREAM} and in case ${ODL_STREAM} is less than aluminium,
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_Less_Than    aluminium    ${kw_name}    @{varargs}    &{kwargs}
538
539 Run_Keyword_If_Less_Than_Silicon
540     [Documentation]    Compare silicon to ${ODL_STREAM} and in case ${ODL_STREAM} is less than silicon,
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    silicon    ${kw_name}    @{varargs}    &{kwargs}
544
545 Run_Keyword_If_Less_Than_Phosphorus
546     [Documentation]    Compare phosphorus to ${ODL_STREAM} and in case ${ODL_STREAM} is less than phosphorus,
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    phosphorus    ${kw_name}    @{varargs}    &{kwargs}
550
551 Run_Keyword_If_Less_Than_Sulfur
552     [Documentation]    Compare sulfur to ${ODL_STREAM} and in case ${ODL_STREAM} is less than sulfur,
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    sulfur    ${kw_name}    @{varargs}    &{kwargs}
556
557 Run_Keyword_If_Less_Than_Chlorine
558     [Documentation]    Compare chlorine to ${ODL_STREAM} and in case ${ODL_STREAM} is less than chlorine,
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    chlorine    ${kw_name}    @{varargs}    &{kwargs}