ee04dae78273f99b182c8e39ab2a9acb4e6cd862
[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}
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_Most_Carbon
68     [Arguments]    ${value_if_true}    ${value_if_false}
69     [Documentation]    Compare carbon to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most carbon,
70     ...    return ${value_if_false} otherwise.
71     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Most    carbon    ${value_if_true}    ${value_if_false}
72
73 Set_Variable_If_At_Most_Nitrogen
74     [Arguments]    ${value_if_true}    ${value_if_false}
75     [Documentation]    Compare nitrogen to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most nitrogen,
76     ...    return ${value_if_false} otherwise.
77     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Most    nitrogen    ${value_if_true}    ${value_if_false}
78
79 Set_Variable_If_At_Most_Oxygen
80     [Arguments]    ${value_if_true}    ${value_if_false}
81     [Documentation]    Compare oxygen to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most oxygen,
82     ...    return ${value_if_false} otherwise.
83     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Most    oxygen    ${value_if_true}    ${value_if_false}
84
85 Set_Variable_If_At_Most_Fluorine
86     [Arguments]    ${value_if_true}    ${value_if_false}
87     [Documentation]    Compare fluorine to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most fluorine,
88     ...    return ${value_if_false} otherwise.
89     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Most    fluorine    ${value_if_true}    ${value_if_false}
90
91 Set_Variable_If_At_Most_Neon
92     [Arguments]    ${value_if_true}    ${value_if_false}
93     [Documentation]    Compare neon to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most neon,
94     ...    return ${value_if_false} otherwise.
95     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Most    neon    ${value_if_true}    ${value_if_false}
96
97 Set_Variable_If_At_Most_Sodium
98     [Arguments]    ${value_if_true}    ${value_if_false}
99     [Documentation]    Compare neon to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most sodium,
100     ...    return ${value_if_false} otherwise.
101     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Most    sodium    ${value_if_true}    ${value_if_false}
102
103 Set_Variable_If_At_Most_Magnesium
104     [Arguments]    ${value_if_true}    ${value_if_false}
105     [Documentation]    Compare magnesium to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most magnesium,
106     ...    return ${value_if_false} otherwise.
107     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Most    magnesium    ${value_if_true}    ${value_if_false}
108
109 CompareStream__Convert_Input
110     [Arguments]    @{arguments}
111     [Documentation]    Splits arguments into args and kwargs is used in Run_Keyword_If_At_Least_Else and Run_Keyword_If_At_Most_Else.
112     ...    The problem is, when the string contains =, but it is not a named argument (name=value). There can be many values containing =, but
113     ...    for sure it is present in xmls. If the string starts with "<" it will be treated as it is xml and splitting for
114     ...    name and value will not be executed.
115     ...    If named argument is passed into this kw, only string data are supported e.g. name=string. Complex variables such as lists or dictionaries
116     ...    are not supported.
117     ${args}    BuiltIn.Create_List
118     ${kwargs}    BuiltIn.Create_Dictionary
119     FOR    ${arg}    IN    @{arguments}
120         ${arg}    BuiltIn.Convert_To_String    ${arg}
121         ${removed}    String.Remove_String    ${arg}    \n    ${Space}    \t
122         ...    \r
123         ${splitted}    BuiltIn.Run_Keyword_If    "${removed[0]}" == "<"    BuiltIn.Create List    ${arg}
124         ...    ELSE    String.Split_String    ${arg}    separator==    max_split=1
125         ${len}    BuiltIn.Get_Length    ${splitted}
126         Run Keyword If    ${len}==1    Collections.Append_To_List    ${args}    @{splitted}[0]
127         ...    ELSE    Collections.Set_To_Dictionary    ${kwargs}    @{splitted}
128     END
129     BuiltIn.Return_From_Keyword    ${args}    ${kwargs}
130
131 Run_Keyword_If_At_Least
132     [Arguments]    ${lower_bound}    ${kw_name}    @{varargs}    &{kwargs}
133     [Documentation]    Compare ${lower_bound} to ${ODL_STREAM} and in case ${ODL_STREAM} is at least ${lower_bound},
134     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
135     BuiltIn.Run_Keyword_And_Return_If    &{Stream_dict}[${ODL_STREAM}] >= &{Stream_dict}[${lower_bound}]    ${kw_name}    @{varargs}    &{kwargs}
136
137 Run_Keyword_If_At_Least_Else
138     [Arguments]    ${lower_bound}    @{varargs}
139     [Documentation]    Compare ${lower_bound} to ${ODL_STREAM} and in case ${ODL_STREAM} is at least ${lower_bound},
140     ...    run keyword defined before ELSE statement otherwise run keyword defined after ELSE statement and return its value.
141     ${position}    Collections.Get_Index_From_List    ${varargs}    \ELSE
142     BuiltIn.Run_Keyword_If    "${position}" == "-1"    BuiltIn.Fail    Missing else statement in defined expresion
143     ${varargs_if}    Collections.Get_Slice_From_List    ${varargs}    0    ${position}
144     ${varargs_else}    Collections.Get_Slice_From_List    ${varargs}    ${position+1}
145     ${args_if}    ${kwargs_if}    CompareStream__Convert_Input    @{varargs_if}
146     ${args_else}    ${kwargs_else}    CompareStream__Convert_Input    @{varargs_else}
147     ${resp}    BuiltIn.Run_Keyword_If    &{Stream_dict}[${ODL_STREAM}] >= &{Stream_dict}[${lower_bound}]    @{args_if}    &{kwargs_if}
148     ...    ELSE    @{args_else}    &{kwargs_else}
149     [Return]    ${resp}
150
151 Run_Keyword_If_At_Most
152     [Arguments]    ${upper_bound}    ${kw_name}    @{varargs}    &{kwargs}
153     [Documentation]    Compare ${upper_bound} to ${ODL_STREAM} and in case ${ODL_STREAM} is at most ${upper_bound},
154     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
155     BuiltIn.Run_Keyword_And_Return_If    &{Stream_dict}[${ODL_STREAM}] <= &{Stream_dict}[${upper_bound}]    ${kw_name}    @{varargs}    &{kwargs}
156
157 Run_Keyword_If_At_Most_Else
158     [Arguments]    ${upper_bound}    @{varargs}
159     [Documentation]    Compare ${upper_bound} to ${ODL_STREAM} and in case ${ODL_STREAM} is at most ${upper_bound},
160     ...    run keyword defined before ELSE statement otherwise run keyword defined after ELSE statement and return its value.
161     ${position}    Collections.Get_Index_From_List    ${varargs}    \ELSE
162     BuiltIn.Run_Keyword_If    "${position}" == "-1"    BuiltIn.Fail    Missing else statement in defined expresion
163     ${varargs_if}    Collections.Get_Slice_From_List    ${varargs}    0    ${position}
164     ${varargs_else}    Collections.Get_Slice_From_List    ${varargs}    ${position+1}
165     ${args_if}    ${kwargs_if}    CompareStream__Convert_Input    @{varargs_if}
166     ${args_else}    ${kwargs_else}    CompareStream__Convert_Input    @{varargs_else}
167     ${resp}    BuiltIn.Run_Keyword_If    &{Stream_dict}[${ODL_STREAM}] >= &{Stream_dict}[${lower_bound}]    @{args_if}    &{kwargs_if}
168     ...    ELSE    @{args_else}    &{kwargs_else}
169     [Return]    ${resp}
170
171 Run_Keyword_If_More_Than
172     [Arguments]    ${lower_bound}    ${kw_name}    @{varargs}    &{kwargs}
173     [Documentation]    Compare ${lower_bound} to ${ODL_STREAM} and in case ${ODL_STREAM} is more than ${lower_bound},
174     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
175     BuiltIn.Run_Keyword_And_Return_If    &{Stream_dict}[${ODL_STREAM}] > &{Stream_dict}[${lower_bound}]    ${kw_name}    @{varargs}    &{kwargs}
176
177 Run_Keyword_If_Equals
178     [Arguments]    ${stream}    ${kw_name}    @{varargs}    &{kwargs}
179     [Documentation]    Compare ${stream} to ${ODL_STREAM} and in case ${ODL_STREAM} equals ${stream},
180     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
181     BuiltIn.Run_Keyword_And_Return_If    &{Stream_dict}[${ODL_STREAM}] == &{Stream_dict}[${stream}]    ${kw_name}    @{varargs}    &{kwargs}
182
183 Run_Keyword_If_Equals_Else
184     [Arguments]    ${stream}    @{varargs}
185     [Documentation]    Compare ${stream} to ${ODL_STREAM} and in case ${ODL_STREAM} equals ${stream},
186     ...    run keyword defined before ELSE statement otherwise run keyword defined after ELSE statement and return its value.
187     ${position}    Collections.Get_Index_From_List    ${varargs}    \ELSE
188     BuiltIn.Run_Keyword_If    "${position}" == "-1"    BuiltIn.Fail    Missing else statement in defined expresion
189     ${varargs_if}    Collections.Get_Slice_From_List    ${varargs}    0    ${position}
190     ${varargs_else}    Collections.Get_Slice_From_List    ${varargs}    ${position+1}
191     ${args_if}    ${kwargs_if}    CompareStream__Convert_Input    @{varargs_if}
192     ${args_else}    ${kwargs_else}    CompareStream__Convert_Input    @{varargs_else}
193     ${resp}    BuiltIn.Run_Keyword_If    &{Stream_dict}[${ODL_STREAM}] == &{Stream_dict}[${stream}]    @{args_if}    &{kwargs_if}
194     ...    ELSE    @{args_else}    &{kwargs_else}
195     [Return]    ${resp}
196
197 Run_Keyword_If_Less_Than
198     [Arguments]    ${lower_bound}    ${kw_name}    @{varargs}    &{kwargs}
199     [Documentation]    Compare ${lower_bound} to ${ODL_STREAM} and in case ${ODL_STREAM} is less than ${lower_bound},
200     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
201     BuiltIn.Run_Keyword_And_Return_If    &{Stream_dict}[${ODL_STREAM}] < &{Stream_dict}[${lower_bound}]    ${kw_name}    @{varargs}    &{kwargs}
202
203 Run_Keyword_If_At_Least_Carbon
204     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
205     [Documentation]    Compare carbon to ${ODL_STREAM} and in case ${ODL_STREAM} is at least carbon,
206     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
207     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Least    carbon    ${kw_name}    @{varargs}    &{kwargs}
208
209 Run_Keyword_If_At_Least_Nitrogen
210     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
211     [Documentation]    Compare nitrogen to ${ODL_STREAM} and in case ${ODL_STREAM} is at least nitrogen,
212     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
213     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Least    nitrogen    ${kw_name}    @{varargs}    &{kwargs}
214
215 Run_Keyword_If_At_Least_Oxygen
216     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
217     [Documentation]    Compare oxygen to ${ODL_STREAM} and in case ${ODL_STREAM} is at least oxygen,
218     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
219     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Least    oxygen    ${kw_name}    @{varargs}    &{kwargs}
220
221 Run_Keyword_If_At_Least_Fluorine
222     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
223     [Documentation]    Compare fluorine to ${ODL_STREAM} and in case ${ODL_STREAM} is at least fluorine,
224     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
225     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Least    fluorine    ${kw_name}    @{varargs}    &{kwargs}
226
227 Run_Keyword_If_At_Least_Neon
228     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
229     [Documentation]    Compare neon to ${ODL_STREAM} and in case ${ODL_STREAM} is at least neon,
230     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
231     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Least    neon    ${kw_name}    @{varargs}    &{kwargs}
232
233 Run_Keyword_If_At_Least_Sodium
234     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
235     [Documentation]    Compare sodium to ${ODL_STREAM} and in case ${ODL_STREAM} is at least sodium,
236     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
237     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Least    sodium    ${kw_name}    @{varargs}    &{kwargs}
238
239 Run_Keyword_If_At_Least_Magnesium
240     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
241     [Documentation]    Compare magnesium to ${ODL_STREAM} and in case ${ODL_STREAM} is at least magnesium,
242     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
243     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Least    magnesium    ${kw_name}    @{varargs}    &{kwargs}
244
245 Run_Keyword_If_At_Most_Carbon
246     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
247     [Documentation]    Compare carbon to ${ODL_STREAM} and in case ${ODL_STREAM} is at most carbon,
248     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
249     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Most    carbon    ${kw_name}    @{varargs}    &{kwargs}
250
251 Run_Keyword_If_At_Most_Nitrogen
252     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
253     [Documentation]    Compare nitrogen to ${ODL_STREAM} and in case ${ODL_STREAM} is at most nitrogen,
254     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
255     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Most    nitrogen    ${kw_name}    @{varargs}    &{kwargs}
256
257 Run_Keyword_If_At_Most_Oxygen
258     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
259     [Documentation]    Compare oxygen to ${ODL_STREAM} and in case ${ODL_STREAM} is at most oxygen,
260     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
261     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Most    oxygen    ${kw_name}    @{varargs}    &{kwargs}
262
263 Run_Keyword_If_At_Most_Fluorine
264     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
265     [Documentation]    Compare fluorine to ${ODL_STREAM} and in case ${ODL_STREAM} is at most fluroine,
266     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
267     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Most    fluorine    ${kw_name}    @{varargs}    &{kwargs}
268
269 Run_Keyword_If_At_Most_Neon
270     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
271     [Documentation]    Compare neon to ${ODL_STREAM} and in case ${ODL_STREAM} is at most neon,
272     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
273     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Most    neon    ${kw_name}    @{varargs}    &{kwargs}
274
275 Run_Keyword_If_At_Most_Sodium
276     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
277     [Documentation]    Compare sodium to ${ODL_STREAM} and in case ${ODL_STREAM} is at most sodium,
278     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
279     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Most    sodium    ${kw_name}    @{varargs}    &{kwargs}
280
281 Run_Keyword_If_At_Most_Magnesium
282     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
283     [Documentation]    Compare magnesium to ${ODL_STREAM} and in case ${ODL_STREAM} is at most magnesium,
284     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
285     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Most    magnesium    ${kw_name}    @{varargs}    &{kwargs}
286
287 Run_Keyword_If_More_Than_Carbon
288     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
289     [Documentation]    Compare carbon to ${ODL_STREAM} and in case ${ODL_STREAM} is more than carbon,
290     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
291     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_More_Than    carbon    ${kw_name}    @{varargs}    &{kwargs}
292
293 Run_Keyword_If_More_Than_Nitrogen
294     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
295     [Documentation]    Compare nitrogen to ${ODL_STREAM} and in case ${ODL_STREAM} is more than nitrogen,
296     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
297     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_More_Than    nitrogen    ${kw_name}    @{varargs}    &{kwargs}
298
299 Run_Keyword_If_More_Than_Oxygen
300     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
301     [Documentation]    Compare oxygen to ${ODL_STREAM} and in case ${ODL_STREAM} is more than oxygen,
302     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
303     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_More_Than    oxygen    ${kw_name}    @{varargs}    &{kwargs}
304
305 Run_Keyword_If_More_Than_Fluorine
306     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
307     [Documentation]    Compare fluorine to ${ODL_STREAM} and in case ${ODL_STREAM} is more than fluorine,
308     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
309     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_More_Than    fluorine    ${kw_name}    @{varargs}    &{kwargs}
310
311 Run_Keyword_If_More_Than_Neon
312     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
313     [Documentation]    Compare neon to ${ODL_STREAM} and in case ${ODL_STREAM} is more than neon,
314     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
315     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_More_Than    neon    ${kw_name}    @{varargs}    &{kwargs}
316
317 Run_Keyword_If_More_Than_Sodium
318     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
319     [Documentation]    Compare sodium to ${ODL_STREAM} and in case ${ODL_STREAM} is more than sodium,
320     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
321     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_More_Than    sodium    ${kw_name}    @{varargs}    &{kwargs}
322
323 Run_Keyword_If_More_Than_Magnesium
324     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
325     [Documentation]    Compare magnesium to ${ODL_STREAM} and in case ${ODL_STREAM} is more than magnesium,
326     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
327     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_More_Than    magnesium    ${kw_name}    @{varargs}    &{kwargs}
328
329 Run_Keyword_If_Less_Than_Carbon
330     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
331     [Documentation]    Compare carbon to ${ODL_STREAM} and in case ${ODL_STREAM} is less than carbon,
332     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
333     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_Less_Than    carbon    ${kw_name}    @{varargs}    &{kwargs}
334
335 Run_Keyword_If_Less_Than_Nitrogen
336     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
337     [Documentation]    Compare nitrogen to ${ODL_STREAM} and in case ${ODL_STREAM} is less than nitrogen,
338     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
339     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_Less_Than    nitrogen    ${kw_name}    @{varargs}    &{kwargs}
340
341 Run_Keyword_If_Less_Than_Oxygen
342     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
343     [Documentation]    Compare oxygen to ${ODL_STREAM} and in case ${ODL_STREAM} is less than oxygen,
344     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
345     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_Less_Than    oxygen    ${kw_name}    @{varargs}    &{kwargs}
346
347 Run_Keyword_If_Less_Than_Fluorine
348     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
349     [Documentation]    Compare fluorine to ${ODL_STREAM} and in case ${ODL_STREAM} is less than fluorine,
350     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
351     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_Less_Than    fluorine    ${kw_name}    @{varargs}    &{kwargs}
352
353 Run_Keyword_If_Less_Than_Neon
354     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
355     [Documentation]    Compare neon to ${ODL_STREAM} and in case ${ODL_STREAM} is less than neon,
356     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
357     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_Less_Than    neon    ${kw_name}    @{varargs}    &{kwargs}
358
359 Run_Keyword_If_Less_Than_Sodium
360     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
361     [Documentation]    Compare sodium to ${ODL_STREAM} and in case ${ODL_STREAM} is less than sodium,
362     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
363     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_Less_Than    sodium    ${kw_name}    @{varargs}    &{kwargs}
364
365 Run_Keyword_If_Less_Than_Magnesium
366     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
367     [Documentation]    Compare magnesium to ${ODL_STREAM} and in case ${ODL_STREAM} is less than magnesium,
368     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
369     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_Less_Than    magnesium    ${kw_name}    @{varargs}    &{kwargs}