Add phosphorus to release dict
[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 Library           Collections
8 Library           String
9
10 *** Variables ***
11 &{Stream_dict}    carbon=${6}    nitrogen=${7}    oxygen=${8}    fluorine=${9}    neon=${10}    sodium=${11}    magnesium=${12}    aluminium=${13}    silicon=${14}    phosphorus=${15}
12
13 *** Keywords ***
14 Set_Variable_If_At_Least
15     [Arguments]    ${lower_bound}    ${value_if_true}    ${value_if_false}
16     [Documentation]    Compare ${lower_bound} to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at least ${lower_bound},
17     ...    return ${value_if_false} otherwise.
18     BuiltIn.Run_Keyword_And_Return    BuiltIn.Set_Variable_If    ${Stream_dict}[${ODL_STREAM}] >= ${Stream_dict}[${lower_bound}]    ${value_if_true}    ${value_if_false}
19
20 Set_Variable_If_At_Most
21     [Arguments]    ${upper_bound}    ${value_if_true}    ${value_if_false}
22     [Documentation]    Compare ${upper_bound} to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most ${upper_bound},
23     ...    return ${value_if_false} otherwise.
24     BuiltIn.Run_Keyword_And_Return    BuiltIn.Set_Variable_If    ${Stream_dict}[${ODL_STREAM}] <= ${Stream_dict}[${upper_bound}]    ${value_if_true}    ${value_if_false}
25
26 Set_Variable_If_At_Least_Carbon
27     [Arguments]    ${value_if_true}    ${value_if_false}
28     [Documentation]    Compare carbon to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at least carbon,
29     ...    return ${value_if_false} otherwise.
30     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Least    carbon    ${value_if_true}    ${value_if_false}
31
32 Set_Variable_If_At_Least_Nitrogen
33     [Arguments]    ${value_if_true}    ${value_if_false}
34     [Documentation]    Compare nitrogen to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at least nitrogen,
35     ...    return ${value_if_false} otherwise.
36     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Least    nitrogen    ${value_if_true}    ${value_if_false}
37
38 Set_Variable_If_At_Least_Oxygen
39     [Arguments]    ${value_if_true}    ${value_if_false}
40     [Documentation]    Compare oxygen to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at least oxygen,
41     ...    return ${value_if_false} otherwise.
42     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Least    oxygen    ${value_if_true}    ${value_if_false}
43
44 Set_Variable_If_At_Least_Fluorine
45     [Arguments]    ${value_if_true}    ${value_if_false}
46     [Documentation]    Compare fluorine to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at least fluorine,
47     ...    return ${value_if_false} otherwise.
48     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Least    fluorine    ${value_if_true}    ${value_if_false}
49
50 Set_Variable_If_At_Least_Neon
51     [Arguments]    ${value_if_true}    ${value_if_false}
52     [Documentation]    Compare neon to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at least neon,
53     ...    return ${value_if_false} otherwise.
54     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Least    neon    ${value_if_true}    ${value_if_false}
55
56 Set_Variable_If_At_Least_Sodium
57     [Arguments]    ${value_if_true}    ${value_if_false}
58     [Documentation]    Compare neon to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at least sodium,
59     ...    return ${value_if_false} otherwise.
60     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Least    sodium    ${value_if_true}    ${value_if_false}
61
62 Set_Variable_If_At_Least_Magnesium
63     [Arguments]    ${value_if_true}    ${value_if_false}
64     [Documentation]    Compare magnesium to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is atleast magnesium, return ${value_if_false} otherwise.
65     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Least    magnesium    ${value_if_true}    ${value_if_false}
66
67 Set_Variable_If_At_Least_Aluminium
68     [Arguments]    ${value_if_true}    ${value_if_false}
69     [Documentation]    Compare aluminium to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is atleast aluminium, return ${value_if_false} otherwise.
70     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Least    aluminium    ${value_if_true}    ${value_if_false}
71
72 Set_Variable_If_At_Least_Silicon
73     [Arguments]    ${value_if_true}    ${value_if_false}
74     [Documentation]    Compare silicon to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is atleast silicon, return ${value_if_false} otherwise.
75     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Least    silicon    ${value_if_true}    ${value_if_false}
76
77 Set_Variable_If_At_Most_Carbon
78     [Arguments]    ${value_if_true}    ${value_if_false}
79     [Documentation]    Compare carbon to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most carbon,
80     ...    return ${value_if_false} otherwise.
81     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Most    carbon    ${value_if_true}    ${value_if_false}
82
83 Set_Variable_If_At_Most_Nitrogen
84     [Arguments]    ${value_if_true}    ${value_if_false}
85     [Documentation]    Compare nitrogen to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most nitrogen,
86     ...    return ${value_if_false} otherwise.
87     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Most    nitrogen    ${value_if_true}    ${value_if_false}
88
89 Set_Variable_If_At_Most_Oxygen
90     [Arguments]    ${value_if_true}    ${value_if_false}
91     [Documentation]    Compare oxygen to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most oxygen,
92     ...    return ${value_if_false} otherwise.
93     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Most    oxygen    ${value_if_true}    ${value_if_false}
94
95 Set_Variable_If_At_Most_Fluorine
96     [Arguments]    ${value_if_true}    ${value_if_false}
97     [Documentation]    Compare fluorine to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most fluorine,
98     ...    return ${value_if_false} otherwise.
99     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Most    fluorine    ${value_if_true}    ${value_if_false}
100
101 Set_Variable_If_At_Most_Neon
102     [Arguments]    ${value_if_true}    ${value_if_false}
103     [Documentation]    Compare neon to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most neon,
104     ...    return ${value_if_false} otherwise.
105     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Most    neon    ${value_if_true}    ${value_if_false}
106
107 Set_Variable_If_At_Most_Sodium
108     [Arguments]    ${value_if_true}    ${value_if_false}
109     [Documentation]    Compare neon to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most sodium,
110     ...    return ${value_if_false} otherwise.
111     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Most    sodium    ${value_if_true}    ${value_if_false}
112
113 Set_Variable_If_At_Most_Magnesium
114     [Arguments]    ${value_if_true}    ${value_if_false}
115     [Documentation]    Compare magnesium to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most magnesium,
116     ...    return ${value_if_false} otherwise.
117     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Most    magnesium    ${value_if_true}    ${value_if_false}
118
119 Set_Variable_If_At_Most_Aluminium
120     [Arguments]    ${value_if_true}    ${value_if_false}
121     [Documentation]    Compare aluminium to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most aluminium,
122     ...    return ${value_if_false} otherwise.
123     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Most    aluminium    ${value_if_true}    ${value_if_false}
124
125 CompareStream__Convert_Input
126     [Arguments]    @{arguments}
127     [Documentation]    Splits arguments into args and kwargs is used in Run_Keyword_If_At_Least_Else and Run_Keyword_If_At_Most_Else.
128     ...    The problem is, when the string contains =, but it is not a named argument (name=value). There can be many values containing =, but
129     ...    for sure it is present in xmls. If the string starts with "<" it will be treated as it is xml and splitting for
130     ...    name and value will not be executed.
131     ...    If named argument is passed into this kw, only string data are supported e.g. name=string. Complex variables such as lists or dictionaries
132     ...    are not supported.
133     ${args}    BuiltIn.Create_List
134     ${kwargs}    BuiltIn.Create_Dictionary
135     FOR    ${arg}    IN    @{arguments}
136         ${arg}    BuiltIn.Convert_To_String    ${arg}
137         ${removed}    String.Remove_String    ${arg}    \n    ${Space}    \t
138         ...    \r
139         ${splitted}    BuiltIn.Run_Keyword_If    "${removed[0]}" == "<"    BuiltIn.Create List    ${arg}
140         ...    ELSE    String.Split_String    ${arg}    separator==    max_split=1
141         ${len}    BuiltIn.Get_Length    ${splitted}
142         Run Keyword If    ${len}==1    Collections.Append_To_List    ${args}    ${splitted}[0]
143         ...    ELSE    Collections.Set_To_Dictionary    ${kwargs}    @{splitted}
144     END
145     BuiltIn.Return_From_Keyword    ${args}    ${kwargs}
146
147 Run_Keyword_If_At_Least
148     [Arguments]    ${lower_bound}    ${kw_name}    @{varargs}    &{kwargs}
149     [Documentation]    Compare ${lower_bound} to ${ODL_STREAM} and in case ${ODL_STREAM} is at least ${lower_bound},
150     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
151     BuiltIn.Run_Keyword_And_Return_If    ${Stream_dict}[${ODL_STREAM}] >= ${Stream_dict}[${lower_bound}]    ${kw_name}    @{varargs}    &{kwargs}
152
153 Run_Keyword_If_At_Least_Else
154     [Arguments]    ${lower_bound}    @{varargs}
155     [Documentation]    Compare ${lower_bound} to ${ODL_STREAM} and in case ${ODL_STREAM} is at least ${lower_bound},
156     ...    run keyword defined before ELSE statement otherwise run keyword defined after ELSE statement and return its value.
157     ${position}    Collections.Get_Index_From_List    ${varargs}    \ELSE
158     BuiltIn.Run_Keyword_If    "${position}" == "-1"    BuiltIn.Fail    Missing else statement in defined expresion
159     ${varargs_if}    Collections.Get_Slice_From_List    ${varargs}    0    ${position}
160     ${varargs_else}    Collections.Get_Slice_From_List    ${varargs}    ${position+1}
161     ${args_if}    ${kwargs_if}    CompareStream__Convert_Input    @{varargs_if}
162     ${args_else}    ${kwargs_else}    CompareStream__Convert_Input    @{varargs_else}
163     ${resp}    BuiltIn.Run_Keyword_If    ${Stream_dict}[${ODL_STREAM}] >= ${Stream_dict}[${lower_bound}]    @{args_if}    &{kwargs_if}
164     ...    ELSE    @{args_else}    &{kwargs_else}
165     [Return]    ${resp}
166
167 Run_Keyword_If_At_Most
168     [Arguments]    ${upper_bound}    ${kw_name}    @{varargs}    &{kwargs}
169     [Documentation]    Compare ${upper_bound} to ${ODL_STREAM} and in case ${ODL_STREAM} is at most ${upper_bound},
170     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
171     BuiltIn.Run_Keyword_And_Return_If    ${Stream_dict}[${ODL_STREAM}] <= ${Stream_dict}[${upper_bound}]    ${kw_name}    @{varargs}    &{kwargs}
172
173 Run_Keyword_If_At_Most_Else
174     [Arguments]    ${upper_bound}    @{varargs}
175     [Documentation]    Compare ${upper_bound} to ${ODL_STREAM} and in case ${ODL_STREAM} is at most ${upper_bound},
176     ...    run keyword defined before ELSE statement otherwise run keyword defined after ELSE statement and return its value.
177     ${position}    Collections.Get_Index_From_List    ${varargs}    \ELSE
178     BuiltIn.Run_Keyword_If    "${position}" == "-1"    BuiltIn.Fail    Missing else statement in defined expresion
179     ${varargs_if}    Collections.Get_Slice_From_List    ${varargs}    0    ${position}
180     ${varargs_else}    Collections.Get_Slice_From_List    ${varargs}    ${position+1}
181     ${args_if}    ${kwargs_if}    CompareStream__Convert_Input    @{varargs_if}
182     ${args_else}    ${kwargs_else}    CompareStream__Convert_Input    @{varargs_else}
183     ${resp}    BuiltIn.Run_Keyword_If    ${Stream_dict}[${ODL_STREAM}] >= ${Stream_dict}[${lower_bound}]    @{args_if}    &{kwargs_if}
184     ...    ELSE    @{args_else}    &{kwargs_else}
185     [Return]    ${resp}
186
187 Run_Keyword_If_More_Than
188     [Arguments]    ${lower_bound}    ${kw_name}    @{varargs}    &{kwargs}
189     [Documentation]    Compare ${lower_bound} to ${ODL_STREAM} and in case ${ODL_STREAM} is more than ${lower_bound},
190     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
191     BuiltIn.Run_Keyword_And_Return_If    ${Stream_dict}[${ODL_STREAM}] > ${Stream_dict}[${lower_bound}]    ${kw_name}    @{varargs}    &{kwargs}
192
193 Run_Keyword_If_Equals
194     [Arguments]    ${stream}    ${kw_name}    @{varargs}    &{kwargs}
195     [Documentation]    Compare ${stream} to ${ODL_STREAM} and in case ${ODL_STREAM} equals ${stream},
196     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
197     BuiltIn.Run_Keyword_And_Return_If    ${Stream_dict}[${ODL_STREAM}] == ${Stream_dict}[${stream}]    ${kw_name}    @{varargs}    &{kwargs}
198
199 Run_Keyword_If_Equals_Else
200     [Arguments]    ${stream}    @{varargs}
201     [Documentation]    Compare ${stream} to ${ODL_STREAM} and in case ${ODL_STREAM} equals ${stream},
202     ...    run keyword defined before ELSE statement otherwise run keyword defined after ELSE statement and return its value.
203     ${position}    Collections.Get_Index_From_List    ${varargs}    \ELSE
204     BuiltIn.Run_Keyword_If    "${position}" == "-1"    BuiltIn.Fail    Missing else statement in defined expresion
205     ${varargs_if}    Collections.Get_Slice_From_List    ${varargs}    0    ${position}
206     ${varargs_else}    Collections.Get_Slice_From_List    ${varargs}    ${position+1}
207     ${args_if}    ${kwargs_if}    CompareStream__Convert_Input    @{varargs_if}
208     ${args_else}    ${kwargs_else}    CompareStream__Convert_Input    @{varargs_else}
209     ${resp}    BuiltIn.Run_Keyword_If    ${Stream_dict}[${ODL_STREAM}] == ${Stream_dict}[${stream}]    @{args_if}    &{kwargs_if}
210     ...    ELSE    @{args_else}    &{kwargs_else}
211     [Return]    ${resp}
212
213 Run_Keyword_If_Less_Than
214     [Arguments]    ${lower_bound}    ${kw_name}    @{varargs}    &{kwargs}
215     [Documentation]    Compare ${lower_bound} to ${ODL_STREAM} and in case ${ODL_STREAM} is less than ${lower_bound},
216     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
217     BuiltIn.Run_Keyword_And_Return_If    ${Stream_dict}[${ODL_STREAM}] < ${Stream_dict}[${lower_bound}]    ${kw_name}    @{varargs}    &{kwargs}
218
219 Run_Keyword_If_At_Least_Carbon
220     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
221     [Documentation]    Compare carbon to ${ODL_STREAM} and in case ${ODL_STREAM} is at least carbon,
222     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
223     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Least    carbon    ${kw_name}    @{varargs}    &{kwargs}
224
225 Run_Keyword_If_At_Least_Nitrogen
226     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
227     [Documentation]    Compare nitrogen to ${ODL_STREAM} and in case ${ODL_STREAM} is at least nitrogen,
228     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
229     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Least    nitrogen    ${kw_name}    @{varargs}    &{kwargs}
230
231 Run_Keyword_If_At_Least_Oxygen
232     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
233     [Documentation]    Compare oxygen to ${ODL_STREAM} and in case ${ODL_STREAM} is at least oxygen,
234     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
235     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Least    oxygen    ${kw_name}    @{varargs}    &{kwargs}
236
237 Run_Keyword_If_At_Least_Fluorine
238     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
239     [Documentation]    Compare fluorine to ${ODL_STREAM} and in case ${ODL_STREAM} is at least fluorine,
240     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
241     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Least    fluorine    ${kw_name}    @{varargs}    &{kwargs}
242
243 Run_Keyword_If_At_Least_Neon
244     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
245     [Documentation]    Compare neon to ${ODL_STREAM} and in case ${ODL_STREAM} is at least neon,
246     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
247     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Least    neon    ${kw_name}    @{varargs}    &{kwargs}
248
249 Run_Keyword_If_At_Least_Sodium
250     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
251     [Documentation]    Compare sodium to ${ODL_STREAM} and in case ${ODL_STREAM} is at least sodium,
252     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
253     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Least    sodium    ${kw_name}    @{varargs}    &{kwargs}
254
255 Run_Keyword_If_At_Least_Magnesium
256     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
257     [Documentation]    Compare magnesium to ${ODL_STREAM} and in case ${ODL_STREAM} is at least magnesium,
258     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
259     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Least    magnesium    ${kw_name}    @{varargs}    &{kwargs}
260
261 Run_Keyword_If_At_Least_Aluminium
262     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
263     [Documentation]    Compare aluminium to ${ODL_STREAM} and in case ${ODL_STREAM} is at least aluminium,
264     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
265     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Least    aluminium    ${kw_name}    @{varargs}    &{kwargs}
266
267 Run_Keyword_If_At_Least_Silicon
268     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
269     [Documentation]    Compare silicon to ${ODL_STREAM} and in case ${ODL_STREAM} is at least silicon,
270     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
271     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Least    silicon    ${kw_name}    @{varargs}    &{kwargs}
272
273 Run_Keyword_If_At_Most_Carbon
274     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
275     [Documentation]    Compare carbon to ${ODL_STREAM} and in case ${ODL_STREAM} is at most carbon,
276     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
277     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Most    carbon    ${kw_name}    @{varargs}    &{kwargs}
278
279 Run_Keyword_If_At_Most_Nitrogen
280     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
281     [Documentation]    Compare nitrogen to ${ODL_STREAM} and in case ${ODL_STREAM} is at most nitrogen,
282     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
283     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Most    nitrogen    ${kw_name}    @{varargs}    &{kwargs}
284
285 Run_Keyword_If_At_Most_Oxygen
286     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
287     [Documentation]    Compare oxygen to ${ODL_STREAM} and in case ${ODL_STREAM} is at most oxygen,
288     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
289     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Most    oxygen    ${kw_name}    @{varargs}    &{kwargs}
290
291 Run_Keyword_If_At_Most_Fluorine
292     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
293     [Documentation]    Compare fluorine to ${ODL_STREAM} and in case ${ODL_STREAM} is at most fluroine,
294     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
295     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Most    fluorine    ${kw_name}    @{varargs}    &{kwargs}
296
297 Run_Keyword_If_At_Most_Neon
298     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
299     [Documentation]    Compare neon to ${ODL_STREAM} and in case ${ODL_STREAM} is at most neon,
300     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
301     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Most    neon    ${kw_name}    @{varargs}    &{kwargs}
302
303 Run_Keyword_If_At_Most_Sodium
304     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
305     [Documentation]    Compare sodium to ${ODL_STREAM} and in case ${ODL_STREAM} is at most sodium,
306     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
307     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Most    sodium    ${kw_name}    @{varargs}    &{kwargs}
308
309 Run_Keyword_If_At_Most_Magnesium
310     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
311     [Documentation]    Compare magnesium to ${ODL_STREAM} and in case ${ODL_STREAM} is at most magnesium,
312     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
313     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Most    magnesium    ${kw_name}    @{varargs}    &{kwargs}
314
315 Run_Keyword_If_At_Most_Aluminium
316     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
317     [Documentation]    Compare aluminium to ${ODL_STREAM} and in case ${ODL_STREAM} is at most aluminium,
318     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
319     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Most    aluminium    ${kw_name}    @{varargs}    &{kwargs}
320
321 Run_Keyword_If_More_Than_Carbon
322     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
323     [Documentation]    Compare carbon to ${ODL_STREAM} and in case ${ODL_STREAM} is more than carbon,
324     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
325     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_More_Than    carbon    ${kw_name}    @{varargs}    &{kwargs}
326
327 Run_Keyword_If_More_Than_Nitrogen
328     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
329     [Documentation]    Compare nitrogen to ${ODL_STREAM} and in case ${ODL_STREAM} is more than nitrogen,
330     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
331     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_More_Than    nitrogen    ${kw_name}    @{varargs}    &{kwargs}
332
333 Run_Keyword_If_More_Than_Oxygen
334     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
335     [Documentation]    Compare oxygen to ${ODL_STREAM} and in case ${ODL_STREAM} is more than oxygen,
336     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
337     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_More_Than    oxygen    ${kw_name}    @{varargs}    &{kwargs}
338
339 Run_Keyword_If_More_Than_Fluorine
340     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
341     [Documentation]    Compare fluorine to ${ODL_STREAM} and in case ${ODL_STREAM} is more than fluorine,
342     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
343     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_More_Than    fluorine    ${kw_name}    @{varargs}    &{kwargs}
344
345 Run_Keyword_If_More_Than_Neon
346     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
347     [Documentation]    Compare neon to ${ODL_STREAM} and in case ${ODL_STREAM} is more than neon,
348     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
349     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_More_Than    neon    ${kw_name}    @{varargs}    &{kwargs}
350
351 Run_Keyword_If_More_Than_Sodium
352     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
353     [Documentation]    Compare sodium to ${ODL_STREAM} and in case ${ODL_STREAM} is more than sodium,
354     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
355     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_More_Than    sodium    ${kw_name}    @{varargs}    &{kwargs}
356
357 Run_Keyword_If_More_Than_Magnesium
358     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
359     [Documentation]    Compare magnesium to ${ODL_STREAM} and in case ${ODL_STREAM} is more than magnesium,
360     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
361     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_More_Than    magnesium    ${kw_name}    @{varargs}    &{kwargs}
362
363 Run_Keyword_If_More_Than_Aluminium
364     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
365     [Documentation]    Compare aluminium to ${ODL_STREAM} and in case ${ODL_STREAM} is more than aluminium,
366     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
367     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_More_Than    aluminium    ${kw_name}    @{varargs}    &{kwargs}
368
369 Run_Keyword_If_Less_Than_Carbon
370     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
371     [Documentation]    Compare carbon to ${ODL_STREAM} and in case ${ODL_STREAM} is less than carbon,
372     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
373     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_Less_Than    carbon    ${kw_name}    @{varargs}    &{kwargs}
374
375 Run_Keyword_If_Less_Than_Nitrogen
376     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
377     [Documentation]    Compare nitrogen to ${ODL_STREAM} and in case ${ODL_STREAM} is less than nitrogen,
378     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
379     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_Less_Than    nitrogen    ${kw_name}    @{varargs}    &{kwargs}
380
381 Run_Keyword_If_Less_Than_Oxygen
382     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
383     [Documentation]    Compare oxygen to ${ODL_STREAM} and in case ${ODL_STREAM} is less than oxygen,
384     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
385     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_Less_Than    oxygen    ${kw_name}    @{varargs}    &{kwargs}
386
387 Run_Keyword_If_Less_Than_Fluorine
388     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
389     [Documentation]    Compare fluorine to ${ODL_STREAM} and in case ${ODL_STREAM} is less than fluorine,
390     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
391     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_Less_Than    fluorine    ${kw_name}    @{varargs}    &{kwargs}
392
393 Run_Keyword_If_Less_Than_Neon
394     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
395     [Documentation]    Compare neon to ${ODL_STREAM} and in case ${ODL_STREAM} is less than neon,
396     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
397     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_Less_Than    neon    ${kw_name}    @{varargs}    &{kwargs}
398
399 Run_Keyword_If_Less_Than_Sodium
400     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
401     [Documentation]    Compare sodium to ${ODL_STREAM} and in case ${ODL_STREAM} is less than sodium,
402     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
403     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_Less_Than    sodium    ${kw_name}    @{varargs}    &{kwargs}
404
405 Run_Keyword_If_Less_Than_Magnesium
406     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
407     [Documentation]    Compare magnesium to ${ODL_STREAM} and in case ${ODL_STREAM} is less than magnesium,
408     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
409     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_Less_Than    magnesium    ${kw_name}    @{varargs}    &{kwargs}
410
411 Run_Keyword_If_Less_Than_Silicon
412     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
413     [Documentation]    Compare silicon to ${ODL_STREAM} and in case ${ODL_STREAM} is less than silicon,
414     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
415     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_Less_Than    silicon    ${kw_name}    @{varargs}    &{kwargs}