Fix featuresBoot parameter in nitrogen tests
[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}    hydrogen=${1}    stable-helium=${2}    stable-lithium=${3}    beryllium=${4}    boron=${5}    carbon=${6}    nitrogen=${7}
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_Helium
27     [Arguments]    ${value_if_true}    ${value_if_false}
28     [Documentation]    Compare stable-helium to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at least stable-helium,
29     ...    return ${value_if_false} otherwise.
30     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Least    stable-helium    ${value_if_true}    ${value_if_false}
31
32 Set_Variable_If_At_Least_Lithium
33     [Arguments]    ${value_if_true}    ${value_if_false}
34     [Documentation]    Compare stable-lithium to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at least stable-lithium,
35     ...    return ${value_if_false} otherwise.
36     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Least    stable-lithium    ${value_if_true}    ${value_if_false}
37
38 Set_Variable_If_At_Least_Beryllium
39     [Arguments]    ${value_if_true}    ${value_if_false}
40     [Documentation]    Compare beryllium to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at least beryllium,
41     ...    return ${value_if_false} otherwise.
42     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Least    beryllium    ${value_if_true}    ${value_if_false}
43
44 Set_Variable_If_At_Least_Boron
45     [Arguments]    ${value_if_true}    ${value_if_false}
46     [Documentation]    Compare boron to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at least boron,
47     ...    return ${value_if_false} otherwise.
48     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Least    boron    ${value_if_true}    ${value_if_false}
49
50 Set_Variable_If_At_Least_Carbon
51     [Arguments]    ${value_if_true}    ${value_if_false}
52     [Documentation]    Compare carbon to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at least carbon,
53     ...    return ${value_if_false} otherwise.
54     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Least    carbon    ${value_if_true}    ${value_if_false}
55
56 Set_Variable_If_At_Least_Nitrogen
57     [Arguments]    ${value_if_true}    ${value_if_false}
58     [Documentation]    Compare nitrogen to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at least nitrogen,
59     ...    return ${value_if_false} otherwise.
60     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Least    nitrogen    ${value_if_true}    ${value_if_false}
61
62 Set_Variable_If_At_Most_Helium
63     [Arguments]    ${value_if_true}    ${value_if_false}
64     [Documentation]    Compare stable-helium to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most stable-helium,
65     ...    return ${value_if_false} otherwise.
66     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Most    stable-helium    ${value_if_true}    ${value_if_false}
67
68 Set_Variable_If_At_Most_Lithium
69     [Arguments]    ${value_if_true}    ${value_if_false}
70     [Documentation]    Compare stable-lithium to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most stable-lithium,
71     ...    return ${value_if_false} otherwise.
72     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Most    stable-lithium    ${value_if_true}    ${value_if_false}
73
74 Set_Variable_If_At_Most_Beryllium
75     [Arguments]    ${value_if_true}    ${value_if_false}
76     [Documentation]    Compare beryllium to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most beryllium,
77     ...    return ${value_if_false} otherwise.
78     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Most    beryllium    ${value_if_true}    ${value_if_false}
79
80 Set_Variable_If_At_Most_Boron
81     [Arguments]    ${value_if_true}    ${value_if_false}
82     [Documentation]    Compare boron to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most boron,
83     ...    return ${value_if_false} otherwise.
84     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Most    boron    ${value_if_true}    ${value_if_false}
85
86 Set_Variable_If_At_Most_Carbon
87     [Arguments]    ${value_if_true}    ${value_if_false}
88     [Documentation]    Compare carbon to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most carbon,
89     ...    return ${value_if_false} otherwise.
90     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Most    carbon    ${value_if_true}    ${value_if_false}
91
92 Set_Variable_If_At_Most_Nitrogen
93     [Arguments]    ${value_if_true}    ${value_if_false}
94     [Documentation]    Compare nitrogen to ${ODL_STREAM} and return ${value_if_true} if ${ODL_STREAM} is at most nitrogen,
95     ...    return ${value_if_false} otherwise.
96     BuiltIn.Run_Keyword_And_Return    Set_Variable_If_At_Most    nitrogen    ${value_if_true}    ${value_if_false}
97
98 CompareStream__Convert_Input
99     [Arguments]    @{arguments}
100     [Documentation]    Splits arguments into args and kwargs is used in Run_Keyword_If_At_Least_Else and Run_Keyword_If_At_Most_Else.
101     ...    The problem is, when the string contains =, but it is not a named argument (name=value). There can be many values containing =, but
102     ...    for sure it is present in xmls. If the string starts with "<" it will be treated as it is xml and splitting for
103     ...    name and value will not be executed.
104     ...    If named argument is passed into this kw, only string data are supported e.g. name=string. Complex variables such as lists or dictionaries
105     ...    are not supported.
106     ${args}    BuiltIn.Create_List
107     ${kwargs}    BuiltIn.Create_Dictionary
108     : FOR    ${arg}    IN    @{arguments}
109     \    ${arg}    BuiltIn.Convert_To_String    ${arg}
110     \    ${removed}    String.Remove_String    ${arg}    \n    ${Space}    \t
111     \    ...    \r
112     \    ${splitted}    BuiltIn.Run_Keyword_If    "${removed[0]}" == "<"    BuiltIn.Create List    ${arg}
113     \    ...    ELSE    String.Split_String    ${arg}    separator==    max_split=1
114     \    ${len}    BuiltIn.Get_Length    ${splitted}
115     \    Run Keyword If    ${len}==1    Collections.Append_To_List    ${args}    @{splitted}[0]
116     \    ...    ELSE    Collections.Set_To_Dictionary    ${kwargs}    @{splitted}
117     BuiltIn.Return_From_Keyword    ${args}    ${kwargs}
118
119 Run_Keyword_If_At_Least
120     [Arguments]    ${lower_bound}    ${kw_name}    @{varargs}    &{kwargs}
121     [Documentation]    Compare ${lower_bound} to ${ODL_STREAM} and in case ${ODL_STREAM} is at least ${lower_bound},
122     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
123     BuiltIn.Run_Keyword_And_Return_If    &{Stream_dict}[${ODL_STREAM}] >= &{Stream_dict}[${lower_bound}]    ${kw_name}    @{varargs}    &{kwargs}
124
125 Run_Keyword_If_At_Least_Else
126     [Arguments]    ${lower_bound}    @{varargs}
127     [Documentation]    Compare ${lower_bound} to ${ODL_STREAM} and in case ${ODL_STREAM} is at least ${lower_bound},
128     ...    run keyword defined before ELSE statement otherwise run keyword defined after ELSE statement and return its value.
129     ${position}    Collections.Get_Index_From_List    ${varargs}    \ELSE
130     BuiltIn.Run_Keyword_If    "${position}" == "-1"    BuiltIn.Fail    Missing else statement in defined expresion
131     ${varargs_if}    Collections.Get_Slice_From_List    ${varargs}    0    ${position}
132     ${varargs_else}    Collections.Get_Slice_From_List    ${varargs}    ${position+1}
133     ${args_if}    ${kwargs_if}    CompareStream__Convert_Input    @{varargs_if}
134     ${args_else}    ${kwargs_else}    CompareStream__Convert_Input    @{varargs_else}
135     ${resp}    BuiltIn.Run_Keyword_If    &{Stream_dict}[${ODL_STREAM}] >= &{Stream_dict}[${lower_bound}]    @{args_if}    &{kwargs_if}
136     ...    ELSE    @{args_else}    &{kwargs_else}
137     [Return]    ${resp}
138
139 Run_Keyword_If_At_Most
140     [Arguments]    ${upper_bound}    ${kw_name}    @{varargs}    &{kwargs}
141     [Documentation]    Compare ${upper_bound} to ${ODL_STREAM} and in case ${ODL_STREAM} is at most ${upper_bound},
142     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
143     BuiltIn.Run_Keyword_And_Return_If    &{Stream_dict}[${ODL_STREAM}] <= &{Stream_dict}[${upper_bound}]    ${kw_name}    @{varargs}    &{kwargs}
144
145 Run_Keyword_If_At_Most_Else
146     [Arguments]    ${upper_bound}    @{varargs}
147     [Documentation]    Compare ${upper_bound} to ${ODL_STREAM} and in case ${ODL_STREAM} is at most ${upper_bound},
148     ...    run keyword defined before ELSE statement otherwise run keyword defined after ELSE statement and return its value.
149     ${position}    Collections.Get_Index_From_List    ${varargs}    \ELSE
150     BuiltIn.Run_Keyword_If    "${position}" == "-1"    BuiltIn.Fail    Missing else statement in defined expresion
151     ${varargs_if}    Collections.Get_Slice_From_List    ${varargs}    0    ${position}
152     ${varargs_else}    Collections.Get_Slice_From_List    ${varargs}    ${position+1}
153     ${args_if}    ${kwargs_if}    CompareStream__Convert_Input    @{varargs_if}
154     ${args_else}    ${kwargs_else}    CompareStream__Convert_Input    @{varargs_else}
155     ${resp}    BuiltIn.Run_Keyword_If    &{Stream_dict}[${ODL_STREAM}] >= &{Stream_dict}[${lower_bound}]    @{args_if}    &{kwargs_if}
156     ...    ELSE    @{args_else}    &{kwargs_else}
157     [Return]    ${resp}
158
159 Run_Keyword_If_More_Than
160     [Arguments]    ${lower_bound}    ${kw_name}    @{varargs}    &{kwargs}
161     [Documentation]    Compare ${lower_bound} to ${ODL_STREAM} and in case ${ODL_STREAM} is more than ${lower_bound},
162     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
163     BuiltIn.Run_Keyword_And_Return_If    &{Stream_dict}[${ODL_STREAM}] > &{Stream_dict}[${lower_bound}]    ${kw_name}    @{varargs}    &{kwargs}
164
165 Run_Keyword_If_Equals
166     [Arguments]    ${stream}    ${kw_name}    @{varargs}    &{kwargs}
167     [Documentation]    Compare ${stream} to ${ODL_STREAM} and in case ${ODL_STREAM} equals ${stream},
168     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
169     BuiltIn.Run_Keyword_And_Return_If    &{Stream_dict}[${ODL_STREAM}] == &{Stream_dict}[${stream}]    ${kw_name}    @{varargs}    &{kwargs}
170
171 Run_Keyword_If_Less_Than
172     [Arguments]    ${lower_bound}    ${kw_name}    @{varargs}    &{kwargs}
173     [Documentation]    Compare ${lower_bound} to ${ODL_STREAM} and in case ${ODL_STREAM} is less 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_At_Least_Helium
178     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
179     [Documentation]    Compare stable-helium to ${ODL_STREAM} and in case ${ODL_STREAM} is at least stable-helium,
180     ...    run ${kw_name} @{varargs} &{kwargs} and return its value
181     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Least    stable-helium    ${kw_name}    @{varargs}    &{kwargs}
182
183 Run_Keyword_If_At_Least_Lithium
184     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
185     [Documentation]    Compare stable-lithium to ${ODL_STREAM} and in case ${ODL_STREAM} is at least stable-lithium,
186     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
187     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Least    stable-lithium    ${kw_name}    @{varargs}    &{kwargs}
188
189 Run_Keyword_If_At_Least_Beryllium
190     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
191     [Documentation]    Compare beryllium to ${ODL_STREAM} and in case ${ODL_STREAM} is at least beryllium,
192     ...    run ${kw_name} @{varargs} &{kwargs} and return its value
193     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Least    beryllium    ${kw_name}    @{varargs}    &{kwargs}
194
195 Run_Keyword_If_At_Least_Boron
196     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
197     [Documentation]    Compare boron to ${ODL_STREAM} and in case ${ODL_STREAM} is at least boron,
198     ...    run ${kw_name} @{varargs} &{kwargs} and return its value
199     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Least    boron    ${kw_name}    @{varargs}    &{kwargs}
200
201 Run_Keyword_If_At_Least_Carbon
202     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
203     [Documentation]    Compare carbon to ${ODL_STREAM} and in case ${ODL_STREAM} is at least carbon,
204     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
205     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Least    carbon    ${kw_name}    @{varargs}    &{kwargs}
206
207 Run_Keyword_If_At_Least_Nitrogen
208     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
209     [Documentation]    Compare nitrogen to ${ODL_STREAM} and in case ${ODL_STREAM} is at least nitrogen,
210     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
211     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Least    nitrogen    ${kw_name}    @{varargs}    &{kwargs}
212
213 Run_Keyword_If_At_Most_Helium
214     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
215     [Documentation]    Compare stable-helium to ${ODL_STREAM} and in case ${ODL_STREAM} is at most stable-helium,
216     ...    run ${kw_name} @{varargs} &{kwargs} and return its value
217     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Most    stable-helium    ${kw_name}    @{varargs}    &{kwargs}
218
219 Run_Keyword_If_At_Most_Lithium
220     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
221     [Documentation]    Compare stable-lithium to ${ODL_STREAM} and in case ${ODL_STREAM} is at most stable-lithium,
222     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
223     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Most    stable-lithium    ${kw_name}    @{varargs}    &{kwargs}
224
225 Run_Keyword_If_At_Most_Beryllium
226     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
227     [Documentation]    Compare beryllium to ${ODL_STREAM} and in case ${ODL_STREAM} is at most beryllium,
228     ...    run ${kw_name} @{varargs} &{kwargs} and return its value
229     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Most    beryllium    ${kw_name}    @{varargs}    &{kwargs}
230
231 Run_Keyword_If_At_Most_Boron
232     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
233     [Documentation]    Compare boron to ${ODL_STREAM} and in case ${ODL_STREAM} is at most boron,
234     ...    run ${kw_name} @{varargs} &{kwargs} and return its value
235     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Most    boron    ${kw_name}    @{varargs}    &{kwargs}
236
237 Run_Keyword_If_At_Most_Carbon
238     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
239     [Documentation]    Compare carbon to ${ODL_STREAM} and in case ${ODL_STREAM} is at most carbon,
240     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
241     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Most    carbon    ${kw_name}    @{varargs}    &{kwargs}
242
243 Run_Keyword_If_At_Most_Nitrogen
244     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
245     [Documentation]    Compare nitrogen to ${ODL_STREAM} and in case ${ODL_STREAM} is at most nitrogen,
246     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
247     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_At_Most    nitrogen    ${kw_name}    @{varargs}    &{kwargs}
248
249 Run_Keyword_If_More_Than_Helium
250     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
251     [Documentation]    Compare stable-helium to ${ODL_STREAM} and in case ${ODL_STREAM} is more than stable-helium,
252     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
253     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_More_Than    stable-helium    ${kw_name}    @{varargs}    &{kwargs}
254
255 Run_Keyword_If_Less_Than_Helium
256     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
257     [Documentation]    Compare stable-helium to ${ODL_STREAM} and in case ${ODL_STREAM} is less than stable-helium,
258     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
259     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_Less_Than    stable-helium    ${kw_name}    @{varargs}    &{kwargs}
260
261 Run_Keyword_If_More_Than_Lithium
262     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
263     [Documentation]    Compare stable-lithium to ${ODL_STREAM} and in case ${ODL_STREAM} is more than stable-lithium,
264     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
265     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_More_Than    stable-lithium    ${kw_name}    @{varargs}    &{kwargs}
266
267 Run_Keyword_If_Less_Than_Lithium
268     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
269     [Documentation]    Compare stable-lithium to ${ODL_STREAM} and in case ${ODL_STREAM} is less than stable-lithium,
270     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
271     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_Less_Than    stable-lithium    ${kw_name}    @{varargs}    &{kwargs}
272
273 Run_Keyword_If_More_Than_Beryllium
274     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
275     [Documentation]    Compare beryllium to ${ODL_STREAM} and in case ${ODL_STREAM} is more than beryllium,
276     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
277     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_More_Than    beryllium    ${kw_name}    @{varargs}    &{kwargs}
278
279 Run_Keyword_If_Less_Than_Beryllium
280     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
281     [Documentation]    Compare beryllium to ${ODL_STREAM} and in case ${ODL_STREAM} is less than beryllium,
282     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
283     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_Less_Than    beryllium    ${kw_name}    @{varargs}    &{kwargs}
284
285 Run_Keyword_If_More_Than_Boron
286     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
287     [Documentation]    Compare boron to ${ODL_STREAM} and in case ${ODL_STREAM} is more than boron,
288     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
289     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_More_Than    boron    ${kw_name}    @{varargs}    &{kwargs}
290
291 Run_Keyword_If_Less_Than_Boron
292     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
293     [Documentation]    Compare boron to ${ODL_STREAM} and in case ${ODL_STREAM} is less than boron,
294     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
295     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_Less_Than    boron    ${kw_name}    @{varargs}    &{kwargs}
296
297 Run_Keyword_If_More_Than_Carbon
298     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
299     [Documentation]    Compare carbon to ${ODL_STREAM} and in case ${ODL_STREAM} is more than carbon,
300     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
301     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_More_Than    carbon    ${kw_name}    @{varargs}    &{kwargs}
302
303 Run_Keyword_If_Less_Than_Carbon
304     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
305     [Documentation]    Compare carbon to ${ODL_STREAM} and in case ${ODL_STREAM} is less than carbon,
306     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
307     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_Less_Than    carbon    ${kw_name}    @{varargs}    &{kwargs}
308
309 Run_Keyword_If_More_Than_Nitrogen
310     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
311     [Documentation]    Compare nitrogen to ${ODL_STREAM} and in case ${ODL_STREAM} is more than nitrogen,
312     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
313     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_More_Than    nitrogen    ${kw_name}    @{varargs}    &{kwargs}
314
315 Run_Keyword_If_Less_Than_Nitrogen
316     [Arguments]    ${kw_name}    @{varargs}    &{kwargs}
317     [Documentation]    Compare nitrogen to ${ODL_STREAM} and in case ${ODL_STREAM} is less than nitrogen,
318     ...    run ${kw_name} @{varargs} &{kwargs} and return its value.
319     BuiltIn.Run_Keyword_And_Return    Run_Keyword_If_Less_Than    nitrogen    ${kw_name}    @{varargs}    &{kwargs}