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