コード例 #1
0
ファイル: symbol_table.py プロジェクト: emilkarlen/exactly
    def test_add_table_SHOULD_replace_values_for_common_elements(self):
        # ARRANGE #
        name_of_common_symbol = 'the symbol 1 name'

        value1 = ASymbolTableValue('the symbol 1 value')
        value2 = ASymbolTableValue('the symbol 2 value')
        table1 = sut.SymbolTable({name_of_common_symbol: value1})
        table2 = sut.SymbolTable({name_of_common_symbol: value2})
        # ACT #
        table1.add_table(table2)
        # ASSERT #
        _assert_table_contains(self, table1, NameAndValue(name_of_common_symbol, value2))
        self.assertEqual(1,
                         len(table1.names_set))
コード例 #2
0
ファイル: symbol_table.py プロジェクト: emilkarlen/exactly
 def test_add_table__empty_intersection(self):
     # ARRANGE #
     symbol_1 = NameAndValue('the symbol 1 name',
                             ASymbolTableValue('the symbol 1 value'))
     symbol_2 = NameAndValue('the symbol 2 name',
                             ASymbolTableValue('the symbol 2 value'))
     table1 = sut.SymbolTable({symbol_1.name: symbol_1.value})
     table2 = sut.SymbolTable({symbol_2.name: symbol_2.value})
     # ACT #
     table1.add_table(table2)
     # ASSERT #
     _assert_table_contains(self, table1, symbol_1)
     _assert_table_contains(self, table1, symbol_2)
     self.assertEqual(2,
                      len(table1.names_set))
コード例 #3
0
ファイル: symbol_table.py プロジェクト: emilkarlen/exactly
 def test_construction_from_dict(self):
     # ARRANGE #
     symbol = NameAndValue('the symbol name',
                           ASymbolTableValue('the symbol value'))
     # ACT #
     actual = sut.SymbolTable({symbol.name: symbol.value})
     # ASSERT #
     _assert_table_contains_single_value(self, actual, symbol)
コード例 #4
0
ファイル: symbol_table.py プロジェクト: emilkarlen/exactly
 def test_lookup_SHOULD_give_the_corresponding_value_WHEN_the_table_contains_the_given_key(self):
     # ARRANGE #
     symbol = NameAndValue('the symbol name',
                           ASymbolTableValue('the symbol value'))
     table = sut.SymbolTable({symbol.name: symbol.value})
     # ACT #
     actual = table.lookup(symbol.name)
     # ASSERT #
     self.assertIs(symbol.value,
                   actual)
コード例 #5
0
ファイル: symbol_table.py プロジェクト: emilkarlen/exactly
 def test_put_SHOULD_replace_value_WHEN_key_already_is_in_table(self):
     # ARRANGE #
     symbol_name = 'the symbol name'
     symbol_value_1 = ASymbolTableValue('the symbol 1 value')
     symbol_value_2 = ASymbolTableValue('the symbol 2 value')
     table = sut.SymbolTable({symbol_name: symbol_value_1})
     # ACT #
     table.put(symbol_name, symbol_value_2)
     # ASSERT #
     _assert_table_contains_single_value(self, table,
                                         NameAndValue(symbol_name, symbol_value_2))
コード例 #6
0
ファイル: symbol_table.py プロジェクト: emilkarlen/exactly
 def test_WHEN_updating_a_copy_THEN_the_original_SHOULD_not_loose_elements(self):
     # ARRANGE #
     symbol_in_original = NameAndValue('the original symbol name',
                                       ASymbolTableValue('the original symbol value'))
     symbol_in_copy = NameAndValue('the copy symbol name',
                                   ASymbolTableValue('the copy symbol value'))
     original_table = sut.SymbolTable({symbol_in_original.name: symbol_in_original.value})
     # ACT #
     copied_table = original_table.copy()
     copied_table.put(symbol_in_copy.name, symbol_in_copy.value)
     # ASSERT #
     _assert_table_contains(self, copied_table, symbol_in_original)
     _assert_table_contains(self, copied_table, symbol_in_copy)
     self.assertEqual(2,
                      len(copied_table.names_set),
                      'the copy SHOULD contain the original symbol and the symbol added to the copy_')
     _assert_table_contains_single_value(self,
                                         original_table,
                                         symbol_in_original)
コード例 #7
0
ファイル: symbol_table.py プロジェクト: emilkarlen/exactly
def _table_from_nav(elements: Sequence[NameAndValue[ASymbolTableValue]]) -> sut.SymbolTable:
    return sut.SymbolTable({
        e.name: e.value
        for e in elements
    })