1# Copyright 2023 Google LLC
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7#      https://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15from bumble import at
16
17
18def test_tokenize_parameters():
19    assert at.tokenize_parameters(b'1, 2, 3') == [b'1', b',', b'2', b',', b'3']
20    assert at.tokenize_parameters(b'"1, 2, 3"') == [b'1, 2, 3']
21    assert at.tokenize_parameters(b'(1, "2, 3")') == [b'(', b'1', b',', b'2, 3', b')']
22
23
24def test_parse_parameters():
25    assert at.parse_parameters(b'1, 2, 3') == [b'1', b'2', b'3']
26    assert at.parse_parameters(b'1,, 3') == [b'1', b'', b'3']
27    assert at.parse_parameters(b'"1, 2, 3"') == [b'1, 2, 3']
28    assert at.parse_parameters(b'1, (2, (3))') == [b'1', [b'2', [b'3']]]
29    assert at.parse_parameters(b'1, (2, "3, 4"), 5') == [b'1', [b'2', b'3, 4'], b'5']
30
31
32# -----------------------------------------------------------------------------
33if __name__ == '__main__':
34    test_tokenize_parameters()
35    test_parse_parameters()
36