Add module to the augmented node in the URL path
[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}    sulfur=${16}    master=${999}
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 at least 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 at least 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 at least 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_Least_Phosphorus
78     [Arguments]    ${value_if_true}    ${value_if_false}
79     [Documentation]    Compare phosphorus to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at least phosphorus, return ${value_if_false} otherwise.
80     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Least    phosphorus    ${value_if_true}    ${value_if_false}
81
82 Set_Variable_If_At_Least_Sulfur
83     [Arguments]    ${value_if_true}    ${value_if_false}
84     [Documentation]    Compare sulfur to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at least sulfur, return ${value_if_false} otherwise.
85     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Least    sulfur    ${value_if_true}    ${value_if_false}
86
87 Set_Variable_If_At_Most_Carbon
88     [Arguments]    ${value_if_true}    ${value_if_false}
89     [Documentation]    Compare carbon to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most carbon,
90     ...    return ${value_if_false} otherwise.
91     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Most    carbon    ${value_if_true}    ${value_if_false}
92
93 Set_Variable_If_At_Most_Nitrogen
94     [Arguments]    ${value_if_true}    ${value_if_false}
95     [Documentation]    Compare nitrogen to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most nitrogen,
96     ...    return ${value_if_false} otherwise.
97     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Most    nitrogen    ${value_if_true}    ${value_if_false}
98
99 Set_Variable_If_At_Most_Oxygen
100     [Arguments]    ${value_if_true}    ${value_if_false}
101     [Documentation]    Compare oxygen to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most oxygen,
102     ...    return ${value_if_false} otherwise.
103     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Most    oxygen    ${value_if_true}    ${value_if_false}
104
105 Set_Variable_If_At_Most_Fluorine
106     [Arguments]    ${value_if_true}    ${value_if_false}
107     [Documentation]    Compare fluorine to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most fluorine,
108     ...    return ${value_if_false} otherwise.
109     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Most    fluorine    ${value_if_true}    ${value_if_false}
110
111 Set_Variable_If_At_Most_Neon
112     [Arguments]    ${value_if_true}    ${value_if_false}
113     [Documentation]    Compare neon to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most neon,
114     ...    return ${value_if_false} otherwise.
115     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Most    neon    ${value_if_true}    ${value_if_false}
116
117 Set_Variable_If_At_Most_Sodium
118     [Arguments]    ${value_if_true}    ${value_if_false}
119     [Documentation]    Compare neon to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most sodium,
120     ...    return ${value_if_false} otherwise.
121     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Most    sodium    ${value_if_true}    ${value_if_false}
122
123 Set_Variable_If_At_Most_Magnesium
124     [Arguments]    ${value_if_true}    ${value_if_false}
125     [Documentation]    Compare magnesium to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most magnesium,
126     ...    return ${value_if_false} otherwise.
127     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Most    magnesium    ${value_if_true}    ${value_if_false}
128
129 Set_Variable_If_At_Most_Aluminium
130     [Arguments]    ${value_if_true}    ${value_if_false}
131     [Documentation]    Compare aluminium to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most aluminium,
132     ...    return ${value_if_false} otherwise.
133     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Most    aluminium    ${value_if_true}    ${value_if_false}
134
135 Set_Variable_If_At_Most_Silicon
136     [Arguments]    ${value_if_true}    ${value_if_false}
137     [Documentation]    Compare silicon to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most silicon,
138     ...    return ${value_if_false} otherwise.
139     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Most    silicon    ${value_if_true}    ${value_if_false}
140
141 Set_Variable_If_At_Most_Phosphorus
142     [Arguments]    ${value_if_true}    ${value_if_false}
143     [Documentation]    Compare phosphorus to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most phosphorus,
144     ...    return ${value_if_false} otherwise.
145     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Most    phosphorus    ${value_if_true}    ${value_if_false}
146
147 Set_Variable_If_At_Most_Sulfur
148     [Arguments]    ${value_if_true}    ${value_if_false}
149     [Documentation]    Compare sulfur to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most sulfur,
150     ...    return ${value_if_false} otherwise.
151     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Most    sulfur    ${value_if_true}    ${value_if_false}
152
153 CompareStream__Convert_Input
154     [Arguments]    @{arguments}
155     [Documentation]    Splits arguments into args and kwargs is used in Run_Keyword_If_At_Least_Else and Run_Keyword_If_At_Most_Else.
156     ...    The problem is, when the string contains =, but it is not a named argument (name=value). There can be many values containing =, but
157     ...    for sure it is present in xmls. If the string starts with "<" it will be treated as it is xml and splitting for
158     ...    name and value will not be executed.
159     ...    If named argument is passed into this kw, only string data are supported e.g. name=string. Complex variables such as lists or dictionaries
160     ...    are not supported.
161     ${args}    BuiltIn.Create_List
162     ${kwargs}    BuiltIn.Create_Dictionary
163     FOR    ${arg}    IN    @{arguments}
164         ${arg}    BuiltIn.Convert_To_String    ${arg}
165         ${removed}    String.Remove_String    ${arg}    \n    ${Space}    \t
166         ...    \r
167         ${splitted}    BuiltIn.Run_Keyword_If    "${removed[0]}" == "<"    BuiltIn.Create List    ${arg}
168         ...    ELSE    String.Split_String    ${arg}    separator==    max_split=1
169         ${len}    BuiltIn.Get_Length    ${splitted}
170         Run Keyword If    ${len}==1    Collections.Append_To_List    ${args}    ${splitted}[0]
171         ...    ELSE    Collections.Set_To_Dictionary    ${kwargs}    @{splitted}
172     END
173     BuiltIn.Return_From_Keyword    ${args}    ${kwargs}
174
175 Run_Keyword_If_At_Least
176     [Arguments]    ${lower_bound}    ${kw_name}    @{varargs}    &{kwargs}
177     [Documentation]    Compare ${lower_bound} to ${ODL_STREAM} and in case ${ODL_STREAM} is at least ${lower_bound},
178     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
179     BuiltIn.Run_Keyword_And_Return_If    ${Stream_dict}[${ODL_STREAM}] >= ${Stream_dict}[${lower_bound}]    ${kw_name}    @{varargs}    &{kwargs}
180
181 Run_Keyword_If_At_Least_Else
182     [Arguments]    ${lower_bound}    @{varargs}
183     [Documentation]    Compare ${lower_bound} to ${ODL_STREAM} and in case ${ODL_STREAM} is at least ${lower_bound},
184     ...    run keyword defined before ELSE statement otherwise run keyword defined after ELSE statement and return its value.
185     ${position}    Collections.Get_Index_From_List    ${varargs}    \ELSE
186     BuiltIn.Run_Keyword_If    "${position}" == "-1"    BuiltIn.Fail    Missing else statement in defined expresion
187     ${varargs_if}    Collections.Get_Slice_From_List    ${varargs}    0    ${position}
188     ${varargs_else}    Collections.Get_Slice_From_List    ${varargs}    ${position+1}
189     ${args_if}    ${kwargs_if}    CompareStream__Convert_Input    @{varargs_if}
190     ${args_else}    ${kwargs_else}    CompareStream__Convert_Input    @{varargs_else}
191     ${resp}    BuiltIn.Run_Keyword_If    ${Stream_dict}[${ODL_STREAM}] >= ${Stream_dict}[${lower_bound}]    @{args_if}    &{kwargs_if}
192     ...    ELSE    @{args_else}    &{kwargs_else}
193     [Return]    ${resp}
194
195 Run_Keyword_If_At_Most
196     [Arguments]    ${upper_bound}    ${kw_name}    @{varargs}    &{kwargs}
197     [Documentation]    Compare ${upper_bound} to ${ODL_STREAM} and in case ${ODL_STREAM} is at most ${upper_bound},
198     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
199     BuiltIn.Run_Keyword_And_Return_If    ${Stream_dict}[${ODL_STREAM}] <= ${Stream_dict}[${upper_bound}]    ${kw_name}    @{varargs}    &{kwargs}
200
201 Run_Keyword_If_At_Most_Else
202     [Arguments]    ${upper_bound}    @{varargs}
203     [Documentation]    Compare ${upper_bound} to ${ODL_STREAM} and in case ${ODL_STREAM} is at most ${upper_bound},
204     ...    run keyword defined before ELSE statement otherwise run keyword defined after ELSE statement and return its value.
205     ${position}    Collections.Get_Index_From_List    ${varargs}    \ELSE
206     BuiltIn.Run_Keyword_If    "${position}" == "-1"    BuiltIn.Fail    Missing else statement in defined expresion
207     ${varargs_if}    Collections.Get_Slice_From_List    ${varargs}    0    ${position}
208     ${varargs_else}    Collections.Get_Slice_From_List    ${varargs}    ${position+1}
209     ${args_if}    ${kwargs_if}    CompareStream__Convert_Input    @{varargs_if}
210     ${args_else}    ${kwargs_else}    CompareStream__Convert_Input    @{varargs_else}
211     ${resp}    BuiltIn.Run_Keyword_If    ${Stream_dict}[${ODL_STREAM}] >= ${Stream_dict}[${lower_bound}]    @{args_if}    &{kwargs_if}
212     ...    ELSE    @{args_else}    &{kwargs_else}
213     [Return]    ${resp}
214
215 Run_Keyword_If_More_Than
216     [Arguments]    ${lower_bound}    ${kw_name}    @{varargs}    &{kwargs}
217     [Documentation]    Compare ${lower_bound} to ${ODL_STREAM} and in case ${ODL_STREAM} is more than ${lower_bound},
218     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
219     BuiltIn.Run_Keyword_And_Return_If    ${Stream_dict}[${ODL_STREAM}] > ${Stream_dict}[${lower_bound}]    ${kw_name}    @{varargs}    &{kwargs}
220
221 Run_Keyword_If_Equals
222     [Arguments]    ${stream}    ${kw_name}    @{varargs}    &{kwargs}
223     [Documentation]    Compare ${stream} to ${ODL_STREAM} and in case ${ODL_STREAM} equals ${stream},
224     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
225     BuiltIn.Run_Keyword_And_Return_If    ${Stream_dict}[${ODL_STREAM}] == ${Stream_dict}[${stream}]    ${kw_name}    @{varargs}    &{kwargs}
226
227 Run_Keyword_If_Equals_Else
228     [Arguments]    ${stream}    @{varargs}
229     [Documentation]    Compare ${stream} to ${ODL_STREAM} and in case ${ODL_STREAM} equals ${stream},
230     ...    run keyword defined before ELSE statement otherwise run keyword defined after ELSE statement and return its value.
231     ${position}    Collections.Get_Index_From_List    ${varargs}    \ELSE
232     BuiltIn.Run_Keyword_If    "${position}" == "-1"    BuiltIn.Fail    Missing else statement in defined expresion
233     ${varargs_if}    Collections.Get_Slice_From_List    ${varargs}    0    ${position}
234     ${varargs_else}    Collections.Get_Slice_From_List    ${varargs}    ${position+1}
235     ${args_if}    ${kwargs_if}    CompareStream__Convert_Input    @{varargs_if}
236     ${args_else}    ${kwargs_else}    CompareStream__Convert_Input    @{varargs_else}
237     ${resp}    BuiltIn.Run_Keyword_If    ${Stream_dict}[${ODL_STREAM}] == ${Stream_dict}[${stream}]    @{args_if}    &{kwargs_if}
238     ...    ELSE    @{args_else}    &{kwargs_else}
239     [Return]    ${resp}
240
241 Run_Keyword_If_Less_Than
242     [Arguments]    ${lower_bound}    ${kw_name}    @{varargs}    &{kwargs}
243     [Documentation]    Compare ${lower_bound} to ${ODL_STREAM} and in case ${ODL_STREAM} is less than ${lower_bound},
244     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
245     BuiltIn.Run_Keyword_And_Return_If    ${Stream_dict}[${ODL_STREAM}] < ${Stream_dict}[${lower_bound}]    ${kw_name}    @{varargs}    &{kwargs}
246
247 Run_Keyword_If_At_Least_Carbon
248     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
249     [Documentation]    Compare carbon to ${ODL_STREAM} and in case ${ODL_STREAM} is at least carbon,
250     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
251     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Least    carbon    ${kw_name}    @{varargs}    &{kwargs}
252
253 Run_Keyword_If_At_Least_Nitrogen
254     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
255     [Documentation]    Compare nitrogen to ${ODL_STREAM} and in case ${ODL_STREAM} is at least nitrogen,
256     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
257     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Least    nitrogen    ${kw_name}    @{varargs}    &{kwargs}
258
259 Run_Keyword_If_At_Least_Oxygen
260     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
261     [Documentation]    Compare oxygen to ${ODL_STREAM} and in case ${ODL_STREAM} is at least oxygen,
262     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
263     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Least    oxygen    ${kw_name}    @{varargs}    &{kwargs}
264
265 Run_Keyword_If_At_Least_Fluorine
266     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
267     [Documentation]    Compare fluorine to ${ODL_STREAM} and in case ${ODL_STREAM} is at least fluorine,
268     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
269     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Least    fluorine    ${kw_name}    @{varargs}    &{kwargs}
270
271 Run_Keyword_If_At_Least_Neon
272     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
273     [Documentation]    Compare neon to ${ODL_STREAM} and in case ${ODL_STREAM} is at least neon,
274     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
275     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Least    neon    ${kw_name}    @{varargs}    &{kwargs}
276
277 Run_Keyword_If_At_Least_Sodium
278     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
279     [Documentation]    Compare sodium to ${ODL_STREAM} and in case ${ODL_STREAM} is at least sodium,
280     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
281     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Least    sodium    ${kw_name}    @{varargs}    &{kwargs}
282
283 Run_Keyword_If_At_Least_Magnesium
284     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
285     [Documentation]    Compare magnesium to ${ODL_STREAM} and in case ${ODL_STREAM} is at least magnesium,
286     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
287     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Least    magnesium    ${kw_name}    @{varargs}    &{kwargs}
288
289 Run_Keyword_If_At_Least_Aluminium
290     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
291     [Documentation]    Compare aluminium to ${ODL_STREAM} and in case ${ODL_STREAM} is at least aluminium,
292     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
293     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Least    aluminium    ${kw_name}    @{varargs}    &{kwargs}
294
295 Run_Keyword_If_At_Least_Silicon
296     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
297     [Documentation]    Compare silicon to ${ODL_STREAM} and in case ${ODL_STREAM} is at least silicon,
298     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
299     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Least    silicon    ${kw_name}    @{varargs}    &{kwargs}
300
301 Run_Keyword_If_At_Least_Phosphorus
302     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
303     [Documentation]    Compare phosphorus to ${ODL_STREAM} and in case ${ODL_STREAM} is at least phosphorus,
304     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
305     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Least    phosphorus    ${kw_name}    @{varargs}    &{kwargs}
306
307 Run_Keyword_If_At_Least_Sulfur
308     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
309     [Documentation]    Compare sulfur to ${ODL_STREAM} and in case ${ODL_STREAM} is at least sulfur,
310     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
311     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Least    sulfur    ${kw_name}    @{varargs}    &{kwargs}
312
313 Run_Keyword_If_At_Most_Carbon
314     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
315     [Documentation]    Compare carbon to ${ODL_STREAM} and in case ${ODL_STREAM} is at most carbon,
316     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
317     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Most    carbon    ${kw_name}    @{varargs}    &{kwargs}
318
319 Run_Keyword_If_At_Most_Nitrogen
320     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
321     [Documentation]    Compare nitrogen to ${ODL_STREAM} and in case ${ODL_STREAM} is at most nitrogen,
322     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
323     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Most    nitrogen    ${kw_name}    @{varargs}    &{kwargs}
324
325 Run_Keyword_If_At_Most_Oxygen
326     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
327     [Documentation]    Compare oxygen to ${ODL_STREAM} and in case ${ODL_STREAM} is at most oxygen,
328     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
329     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Most    oxygen    ${kw_name}    @{varargs}    &{kwargs}
330
331 Run_Keyword_If_At_Most_Fluorine
332     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
333     [Documentation]    Compare fluorine to ${ODL_STREAM} and in case ${ODL_STREAM} is at most fluroine,
334     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
335     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Most    fluorine    ${kw_name}    @{varargs}    &{kwargs}
336
337 Run_Keyword_If_At_Most_Neon
338     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
339     [Documentation]    Compare neon to ${ODL_STREAM} and in case ${ODL_STREAM} is at most neon,
340     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
341     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Most    neon    ${kw_name}    @{varargs}    &{kwargs}
342
343 Run_Keyword_If_At_Most_Sodium
344     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
345     [Documentation]    Compare sodium to ${ODL_STREAM} and in case ${ODL_STREAM} is at most sodium,
346     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
347     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Most    sodium    ${kw_name}    @{varargs}    &{kwargs}
348
349 Run_Keyword_If_At_Most_Magnesium
350     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
351     [Documentation]    Compare magnesium to ${ODL_STREAM} and in case ${ODL_STREAM} is at most magnesium,
352     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
353     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Most    magnesium    ${kw_name}    @{varargs}    &{kwargs}
354
355 Run_Keyword_If_At_Most_Aluminium
356     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
357     [Documentation]    Compare aluminium to ${ODL_STREAM} and in case ${ODL_STREAM} is at most aluminium,
358     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
359     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Most    aluminium    ${kw_name}    @{varargs}    &{kwargs}
360
361 Run_Keyword_If_At_Most_Silicon
362     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
363     [Documentation]    Compare silicon to ${ODL_STREAM} and in case ${ODL_STREAM} is at most silicon,
364     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
365     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Most    silicon    ${kw_name}    @{varargs}    &{kwargs}
366
367 Run_Keyword_If_At_Most_Phosphorus
368     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
369     [Documentation]    Compare phosphorus to ${ODL_STREAM} and in case ${ODL_STREAM} is at most phosphorus,
370     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
371     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Most    phosphorus    ${kw_name}    @{varargs}    &{kwargs}
372
373 Run_Keyword_If_At_Most_Sulfur
374     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
375     [Documentation]    Compare sulfur to ${ODL_STREAM} and in case ${ODL_STREAM} is at most sulfur,
376     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
377     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Most    sulfur    ${kw_name}    @{varargs}    &{kwargs}
378
379 Run_Keyword_If_More_Than_Carbon
380     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
381     [Documentation]    Compare carbon to ${ODL_STREAM} and in case ${ODL_STREAM} is more than carbon,
382     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
383     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_More_Than    carbon    ${kw_name}    @{varargs}    &{kwargs}
384
385 Run_Keyword_If_More_Than_Nitrogen
386     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
387     [Documentation]    Compare nitrogen to ${ODL_STREAM} and in case ${ODL_STREAM} is more than nitrogen,
388     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
389     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_More_Than    nitrogen    ${kw_name}    @{varargs}    &{kwargs}
390
391 Run_Keyword_If_More_Than_Oxygen
392     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
393     [Documentation]    Compare oxygen to ${ODL_STREAM} and in case ${ODL_STREAM} is more than oxygen,
394     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
395     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_More_Than    oxygen    ${kw_name}    @{varargs}    &{kwargs}
396
397 Run_Keyword_If_More_Than_Fluorine
398     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
399     [Documentation]    Compare fluorine to ${ODL_STREAM} and in case ${ODL_STREAM} is more than fluorine,
400     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
401     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_More_Than    fluorine    ${kw_name}    @{varargs}    &{kwargs}
402
403 Run_Keyword_If_More_Than_Neon
404     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
405     [Documentation]    Compare neon to ${ODL_STREAM} and in case ${ODL_STREAM} is more than neon,
406     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
407     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_More_Than    neon    ${kw_name}    @{varargs}    &{kwargs}
408
409 Run_Keyword_If_More_Than_Sodium
410     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
411     [Documentation]    Compare sodium to ${ODL_STREAM} and in case ${ODL_STREAM} is more than sodium,
412     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
413     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_More_Than    sodium    ${kw_name}    @{varargs}    &{kwargs}
414
415 Run_Keyword_If_More_Than_Magnesium
416     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
417     [Documentation]    Compare magnesium to ${ODL_STREAM} and in case ${ODL_STREAM} is more than magnesium,
418     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
419     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_More_Than    magnesium    ${kw_name}    @{varargs}    &{kwargs}
420
421 Run_Keyword_If_More_Than_Aluminium
422     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
423     [Documentation]    Compare aluminium to ${ODL_STREAM} and in case ${ODL_STREAM} is more than aluminium,
424     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
425     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_More_Than    aluminium    ${kw_name}    @{varargs}    &{kwargs}
426
427 Run_Keyword_If_More_Than_Silicon
428     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
429     [Documentation]    Compare silicon to ${ODL_STREAM} and in case ${ODL_STREAM} is more than silicon,
430     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
431     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_More_Than    silicon    ${kw_name}    @{varargs}    &{kwargs}
432
433 Run_Keyword_If_More_Than_Phosphorus
434     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
435     [Documentation]    Compare phosphorus to ${ODL_STREAM} and in case ${ODL_STREAM} is more than phosphorus,
436     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
437     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_More_Than    phosphorus    ${kw_name}    @{varargs}    &{kwargs}
438
439 Run_Keyword_If_More_Than_Sulfur
440     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
441     [Documentation]    Compare sulfur to ${ODL_STREAM} and in case ${ODL_STREAM} is more than sulfur,
442     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
443     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_More_Than    sulfur    ${kw_name}    @{varargs}    &{kwargs}
444
445 Run_Keyword_If_Less_Than_Carbon
446     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
447     [Documentation]    Compare carbon to ${ODL_STREAM} and in case ${ODL_STREAM} is less than carbon,
448     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
449     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_Less_Than    carbon    ${kw_name}    @{varargs}    &{kwargs}
450
451 Run_Keyword_If_Less_Than_Nitrogen
452     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
453     [Documentation]    Compare nitrogen to ${ODL_STREAM} and in case ${ODL_STREAM} is less than nitrogen,
454     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
455     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_Less_Than    nitrogen    ${kw_name}    @{varargs}    &{kwargs}
456
457 Run_Keyword_If_Less_Than_Oxygen
458     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
459     [Documentation]    Compare oxygen to ${ODL_STREAM} and in case ${ODL_STREAM} is less than oxygen,
460     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
461     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_Less_Than    oxygen    ${kw_name}    @{varargs}    &{kwargs}
462
463 Run_Keyword_If_Less_Than_Fluorine
464     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
465     [Documentation]    Compare fluorine to ${ODL_STREAM} and in case ${ODL_STREAM} is less than fluorine,
466     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
467     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_Less_Than    fluorine    ${kw_name}    @{varargs}    &{kwargs}
468
469 Run_Keyword_If_Less_Than_Neon
470     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
471     [Documentation]    Compare neon to ${ODL_STREAM} and in case ${ODL_STREAM} is less than neon,
472     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
473     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_Less_Than    neon    ${kw_name}    @{varargs}    &{kwargs}
474
475 Run_Keyword_If_Less_Than_Sodium
476     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
477     [Documentation]    Compare sodium to ${ODL_STREAM} and in case ${ODL_STREAM} is less than sodium,
478     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
479     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_Less_Than    sodium    ${kw_name}    @{varargs}    &{kwargs}
480
481 Run_Keyword_If_Less_Than_Magnesium
482     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
483     [Documentation]    Compare magnesium to ${ODL_STREAM} and in case ${ODL_STREAM} is less than magnesium,
484     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
485     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_Less_Than    magnesium    ${kw_name}    @{varargs}    &{kwargs}
486
487 Run_Keyword_If_Less_Than_Aluminium
488     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
489     [Documentation]    Compare aluminium to ${ODL_STREAM} and in case ${ODL_STREAM} is less than aluminium,
490     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
491     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_Less_Than    aluminium    ${kw_name}    @{varargs}    &{kwargs}
492
493 Run_Keyword_If_Less_Than_Silicon
494     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
495     [Documentation]    Compare silicon to ${ODL_STREAM} and in case ${ODL_STREAM} is less than silicon,
496     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
497     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_Less_Than    silicon    ${kw_name}    @{varargs}    &{kwargs}
498
499 Run_Keyword_If_Less_Than_Phosphorus
500     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
501     [Documentation]    Compare phosphorus to ${ODL_STREAM} and in case ${ODL_STREAM} is less than phosphorus,
502     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
503     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_Less_Than    phosphorus    ${kw_name}    @{varargs}    &{kwargs}
504
505 Run_Keyword_If_Less_Than_Sulfur
506     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
507     [Documentation]    Compare sulfur to ${ODL_STREAM} and in case ${ODL_STREAM} is less than sulfur,
508     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
509     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_Less_Than    sulfur    ${kw_name}    @{varargs}    &{kwargs}