Esempio n. 1
0
 def test_input_message_append_input_message_to_existing(self):
     # Given
     input_message = _InputMessage._create('+_/2')
     chars = _InputMessage._create('10-1-2')
     # When
     input_message._append(chars)
     # Then
     self.assertIsInstance(input_message, _InputMessage)
     self.assertEqual('+_/210-1-2', input_message._value)
     self.assertEqual(10, input_message._size)
     self.assertEqual('+', input_message._head)
     self.assertTrue(input_message._is_cont)
Esempio n. 2
0
 def test_input_message_append_input_message_to_empty(self):
     # Given
     input_message = _InputMessage._create('')
     chars = _InputMessage._create('input_bar')
     # When
     input_message._append(chars)
     # Then
     self.assertIsInstance(input_message, _InputMessage)
     self.assertEqual('input_bar', input_message._value)
     self.assertEqual(9, input_message._size)
     self.assertEqual('i', input_message._head)
     self.assertTrue(input_message._is_cont)
Esempio n. 3
0
 def test_input_message_step_once(self):
     # Given
     message = _InputMessage._create('dog')
     # When
     actual = message._step()
     # Then
     self.assertEqual('o', actual)
Esempio n. 4
0
 def test_input_message_is_continuous_existing_true(self):
     # Given
     message = _InputMessage._create('dog')
     # When
     actual = message._is_cont
     # Then
     self.assertTrue(actual)
Esempio n. 5
0
 def test_input_message_is_continuous_empty(self):
     # Given
     message = _InputMessage._create('')
     # When
     actual = message._is_cont
     # Then
     self.assertFalse(actual)
Esempio n. 6
0
 def test_input_message_head_empty(self):
     # Given
     message = _InputMessage._create('')
     # When
     actual = message._head
     # Then
     self.assertEqual('', actual)
Esempio n. 7
0
 def test_input_message_skip_spaces_spaces_only(self):
     # Given
     message = _InputMessage._create('    ')
     # When
     message._skip_spaces(message)
     # Then
     self.assertEqual('', message._head)
Esempio n. 8
0
 def test_input_message_skip_spaces_multiple(self):
     # Given
     message = _InputMessage._create('    qux')
     # When
     message._skip_spaces(message)
     # Then
     self.assertEqual('q', message._head)
Esempio n. 9
0
 def test_parse_literal_empty_empty_builder(self):
     # Given
     message = _InputMessage._create('')
     parser = _ReconParser()
     # When
     actual = parser._parse_literal(message)
     # Then
     self.assertEqual(_Absent._get_absent(), actual)
Esempio n. 10
0
 def test_input_message_head_continuous(self):
     # Given
     message = _InputMessage._create('abc')
     # When
     message._step()
     actual = message._head
     # Then
     self.assertEqual('b', actual)
Esempio n. 11
0
 def test_parse_number_negative_float_full(self):
     # Given
     message = _InputMessage._create('  -11.12')
     parser = _ReconParser()
     # When
     actual = parser._parse_number(message)
     # Then
     self.assertIsInstance(actual, Num)
     self.assertEqual(-11.12, actual.value)
Esempio n. 12
0
 def test_parse_decimal_dot_only_negative_empty_value(self):
     # Given
     message = _InputMessage._create('.')
     parser = _ReconParser()
     # When
     actual = _DecimalParser._parse(message, parser, sign_output=-1)
     # Then
     self.assertIsInstance(actual, Num)
     self.assertEqual(-0.0, actual.value)
Esempio n. 13
0
 def test_parse_decimal_empty_positive_empty_value(self):
     # Given
     message = _InputMessage._create('')
     parser = _ReconParser()
     # When
     actual = _DecimalParser._parse(message, parser)
     # Then
     self.assertIsInstance(actual, Num)
     self.assertEqual(0.0, actual.value)
Esempio n. 14
0
 def test_parse_number_positive_float_decimal_only(self):
     # Given
     message = _InputMessage._create('  .12')
     parser = _ReconParser()
     # When
     actual = parser._parse_number(message)
     # Then
     self.assertIsInstance(actual, Num)
     self.assertEqual(0.12, actual.value)
Esempio n. 15
0
 def test_parse_number_float_point_only(self):
     # Given
     message = _InputMessage._create('.')
     parser = _ReconParser()
     # When
     actual = parser._parse_number(message, sign_output=-1)
     # Then
     self.assertIsInstance(actual, Num)
     self.assertEqual(-0.00, actual.value)
Esempio n. 16
0
 def test_attr_expression_parser_parse_literal(self):
     # Given
     message = _InputMessage._create('literal')
     parser = _ReconParser()
     # When
     actual = parser._parse_attr_expression(message)
     # Then
     self.assertIsInstance(actual, Text)
     self.assertEqual('literal', actual.value)
Esempio n. 17
0
 def test_parse_string_missing_closing_quote(self):
     # Given
     message = _InputMessage._create('  "Hello, World')
     parser = _ReconParser()
     # When
     actual = parser._parse_string(message)
     # Then
     self.assertIsInstance(actual, Text)
     self.assertEqual('Hello, World', actual.value)
Esempio n. 18
0
 def test_parse_ident_valid_with_leading_spaces(self):
     # Given
     message = _InputMessage._create('   foo')
     parser = _ReconParser()
     # When
     actual = parser._parse_ident(message)
     # Then
     self.assertIsInstance(actual, Text)
     self.assertEqual('foo', actual.value)
Esempio n. 19
0
 def test_parse_string_normal(self):
     # Given
     message = _InputMessage._create('"Hello, friend"')
     parser = _ReconParser()
     # When
     actual = parser._parse_string(message)
     # Then
     self.assertIsInstance(actual, Text)
     self.assertEqual('Hello, friend', actual.value)
Esempio n. 20
0
 def test_parse_number_leading_zeroes(self):
     # Given
     message = _InputMessage._create('00013')
     parser = _ReconParser()
     # When
     actual = parser._parse_number(message)
     # Then
     self.assertIsInstance(actual, Num)
     self.assertEqual(13, actual.value)
Esempio n. 21
0
 def test_parse_number_empty(self):
     # Given
     message = _InputMessage._create('')
     parser = _ReconParser()
     # When
     actual = parser._parse_number(message)
     # Then
     self.assertIsInstance(actual, Num)
     self.assertEqual(0, actual.value)
Esempio n. 22
0
 def test_record_parser_parse_empty(self):
     # Given
     message = _InputMessage._create('')
     parser = _ReconParser()
     # When
     actual = parser._parse_record(message)
     # Then
     self.assertIsInstance(actual, RecordMap)
     self.assertEqual(0, actual.size)
     self.assertEqual(_Absent._get_absent(), actual.value)
Esempio n. 23
0
 def test_parse_literal_quote_empty_builder(self):
     # Given
     message = _InputMessage._create('"Baz_Foo"')
     parser = _ReconParser()
     # When
     actual = parser._parse_literal(message)
     # Then
     self.assertIsInstance(actual, Text)
     self.assertIsInstance(actual.value, str)
     self.assertEqual('Baz_Foo', actual.value)
Esempio n. 24
0
 def test_attr_expression_parser_parse_record_square_brackets(self):
     # Given
     message = _InputMessage._create('[record]')
     parser = _ReconParser()
     # When
     actual = parser._parse_attr_expression(message)
     # Then
     self.assertIsInstance(actual, RecordMap)
     self.assertEqual(1, actual.size)
     self.assertEqual('record', actual.get_item(0).key.value)
Esempio n. 25
0
 def test_parse_literal_ident_empty_builder(self):
     # Given
     message = _InputMessage._create('foo')
     parser = _ReconParser()
     # When
     actual = parser._parse_literal(message)
     # Then
     self.assertIsInstance(actual, Text)
     self.assertEqual('foo', actual.value)
     self.assertEqual(_Absent._get_absent(), actual.key)
Esempio n. 26
0
 def test_attr_expression_parser_parse_attribute(self):
     # Given
     message = _InputMessage._create('@test')
     parser = _ReconParser()
     # When
     actual = parser._parse_attr_expression(message)
     # Then
     self.assertIsInstance(actual, RecordMap)
     self.assertEqual(1, actual.size)
     self.assertEqual('test', actual._tag)
Esempio n. 27
0
 def test_parse_attr_no_body(self):
     # Given
     message = _InputMessage._create('@animal')
     parser = _ReconParser()
     # When
     actual = parser._parse_attr(message)
     # Then
     self.assertIsInstance(actual, Attr)
     self.assertIsInstance(actual.key, Text)
     self.assertEqual('animal', actual.key.value)
Esempio n. 28
0
 def test_parse_ident_invalid_with_output(self):
     # Given
     message = _InputMessage._create('$$')
     parser = _ReconParser()
     output = _OutputMessage._create('hello')
     # When
     actual = parser._parse_ident(message, output)
     # Then
     self.assertIsInstance(actual, Text)
     self.assertEqual('hello', actual.value)
Esempio n. 29
0
 def test_parse_string_existing_output(self):
     # Given
     message = _InputMessage._create('"dog"')
     output = _OutputMessage._create('This is ')
     parser = _ReconParser()
     # When
     actual = parser._parse_string(message, output)
     # Then
     self.assertIsInstance(actual, Text)
     self.assertEqual('This is dog', actual.value)
Esempio n. 30
0
 def test_parse_decimal_dot_only_positive_existing_value(self):
     # Given
     message = _InputMessage._create('.')
     parser = _ReconParser()
     value_output = 17
     # When
     actual = _DecimalParser._parse(message, parser, value_output)
     # Then
     self.assertIsInstance(actual, Num)
     self.assertEqual(17.0, actual.value)