Пример #1
0
	def __init__(self):
		pygame.init()
		pygame.font.init()
		self.question_height = 100
		self.answer_height = 50
		self.surface = pygame.display.set_mode((800, 600))
		self.clock = pygame.time.Clock()
		self.mouse_handlers = []
		self.objects = []
		self.answer_objects = []
		self.current_question = None
		self.current_question_i = -1
		self.score = 0
		self.state = GameState.game
		data=pd.read_csv("sample.csv")

		self.questions = [Question_Object(data["question"][0], (data["answer 1"][0], data["answer 2"][0], data["answer 3"][0], data["answer 4"][0]), data["correct_answer"][0]-1),
                          Question_Object(data["question"][1], (data["answer 1"][1], data["answer 2"][1], data["answer 3"][1], data["answer 4"][1]), data["correct_answer"][1]-1),
                          Question_Object(data["question"][2], (data["answer 1"][2], data["answer 2"][2], data["answer 3"][2], data["answer 4"][2]), data["correct_answer"][2]-1),
                          Question_Object(data["question"][3], (data["answer 1"][3], data["answer 2"][3], data["answer 3"][3], data["answer 4"][3]), data["correct_answer"][3]-1),
                          Question_Object(data["question"][4], (data["answer 1"][4], data["answer 2"][4], data["answer 3"][4], data["answer 4"][4]), data["correct_answer"][4]-1)
                          ]
		self.score_text_block = TextBlock(500, 10, 250, 50, "Score: {0}/{1}".format(str(self.score), str(len(self.questions))))
		self.objects.append(self.score_text_block)
		self.nextQuestion()
		self.game_over_text_block = TextBlock(250, 250, 300, 50, "Game over")
Пример #2
0
    def setUp(self):
        self.text = """

        | name | phone| company     |
        |Hugo Maia Vieira| (22) 8512-7751 | UENF |
        |Rodrigo Manhães | (22) 9145-8722 |NSI|

        """
        self.text_block = TextBlock(self.text)
Пример #3
0
  def run(self,edit):
    sel = self.view.sel()

    if len(sel) == 1:
      text = self.view.substr(sel[0])
      text_block = TextBlock(text)
      aligned_columns = text_block.align()
      self.view.replace(edit, sel[0], aligned_columns)
    
    elif len(sel) > 1:
      sublime.error_message("Sorry, but I can align only one selection")
    def it_should_align_the_text_block(self):
        self.text_block.align() |should| equal_to(u"""        | name             | phone          | company |
        | Hugo Maia Vieira | (22) 8512-7751 | UENF    |
        | Rodrigo Manhães  | (22) 9145-8722 | NSI     |""")

        text = """| name | phone| company     |
    |Hugo Maia Vieira| (22) 8512-7751 | UENF |
    |Rodrigo Manhães | (22) 9145-8722 |NSI|"""
        text_block = TextBlock(text)
        text_block.align() |should| equal_to(u"""| name             | phone          | company |
    | Hugo Maia Vieira | (22) 8512-7751 | UENF    |
    | Rodrigo Manhães  | (22) 9145-8722 | NSI     |""")
    def should_return_the_number_of_columns(self):
        self.text_block.get_columns_number() |should| equal_to(3)

        text = "| name | phone |"
        text_block = TextBlock(text)
        text_block.get_columns_number() |should| equal_to(2)

        text = """
        | name | phone |
        | None |
        """
        (lambda: TextBlock(text)) |should| throw(DifferentNumberOfColumnsError)
Пример #6
0
    def should_not_initialize_with_a_text_empty_or_composed_by_white_spaces(
            self):
        text = ''
        (lambda: TextBlock(text)) | should | throw(WhiteSpacesError)

        text = '  \n'
        (lambda: TextBlock(text)) | should | throw(WhiteSpacesError)

        text = '  \t'
        (lambda: TextBlock(text)) | should | throw(WhiteSpacesError)

        text = '    |'
        (lambda: TextBlock(text)) | should_not | throw(WhiteSpacesError)
Пример #7
0
    def should_return_the_number_of_columns(self):
        self.text_block.get_columns_number() | should | equal_to(3)

        text = "| name | phone |"
        text_block = TextBlock(text)
        text_block.get_columns_number() | should | equal_to(2)

        text = """
        | name | phone |
        | None |
        """
        (lambda: TextBlock(text)
         ) | should | throw(DifferentNumberOfColumnsError)
Пример #8
0
    def it_should_align_the_text_block(self):
        self.text_block.align() | should | equal_to(
            u"""        | name             | phone          | company |
        | Hugo Maia Vieira | (22) 8512-7751 | UENF    |
        | Rodrigo Manhães  | (22) 9145-8722 | NSI     |""")

        text = """| name | phone| company     |
    |Hugo Maia Vieira| (22) 8512-7751 | UENF |
    |Rodrigo Manhães | (22) 9145-8722 |NSI|"""
        text_block = TextBlock(text)
        text_block.align() | should | equal_to(
            u"""| name             | phone          | company |
    | Hugo Maia Vieira | (22) 8512-7751 | UENF    |
    | Rodrigo Manhães  | (22) 9145-8722 | NSI     |""")
Пример #9
0
    def it_should_return_a_list_with_the_tabulation_before_each_line(self):
        text = """
            |name|age|
        |something|19|
        """
        text_block = TextBlock(text)
        text_block.tabulation | should | equal_to(['            ', '        '])
        text_block.tabulation | should | have(2).items

        text = """|name|age|
        |someone|22|"""
        text_block = TextBlock(text)
        text_block.tabulation | should | equal_to(['', '        '])
        text_block.tabulation | should | have(2).items
Пример #10
0
 def it_should_accept_empty_string_between_pipes(self):
     text = """
     || phone|
     |something  |  |
     """
     text_block = TextBlock(text)
     text_block.lines_list[0] | should | include_all_of([' ', 'phone'])
     text_block.lines_list[1] | should | include_all_of(['something', ' '])
Пример #11
0
def test_text_block_format_pprint():
    tb = TextBlock("Header 1")
    tb.lines.append("line 1 1")
    tb.lines.append("line 1 2")

    tb_1_1 = TextBlock("Header 1 1")
    tb_1_1.lines.append("line 1 1 1")
    tb_1_1.lines.append("line 1 1 2")
    tb.blocks.append(tb_1_1)

    tb_1_2 = TextBlock("Header 1 2")
    tb_1_2.lines.append("line 1 2 1")
    tb_1_2.lines.append("line 1 2 2")

    tb_1_2_1 = TextBlock("Header 1 2 1")
    tb_1_2_1.lines.append("line 1 2 1 1")
    tb_1_2_1.lines.append("line 1 2 1 2")

    tb_1_2.blocks.append(tb_1_2_1)
    tb.blocks.append(tb_1_2)

    tb_1_3 = TextBlock("Header 1 3")
    tb_1_3.lines.append("line 1 3 1")
    tb_1_3.lines.append("line 1 3 2")
    tb.blocks.append(tb_1_3)

    print(tb.format_pprint())
    def setUp(self):
        self.text = """

        | name | phone| company     |
        |Hugo Maia Vieira| (22) 8512-7751 | UENF |
        |Rodrigo Manhães | (22) 9145-8722 |NSI|

        """
        self.text_block = TextBlock(self.text)
Пример #13
0
 def __init__(self):
     pygame.init()
     pygame.font.init()
     self.question_height = 100
     self.answer_height = 50
     self.surface = pygame.display.set_mode((800, 600))
     self.clock = pygame.time.Clock()
     self.mouse_handlers = []
     self.objects = []
     self.answer_objects = []
     self.current_question = None
     self.current_question_i = -1
     self.score = 0
     self.state = GameState.game
     self.questions = [
         Question_Object('World War I began in which year?',
                         ('1923', '1938', '1917', '1914'), 3),
         Question_Object(
             'The Hundred Years War was fought between what two countries?',
             ('Italy and Carthage', 'England and Germany',
              'France and England', 'Spain and France'), 2),
         Question_Object('Who fought in the war of 1812?',
                         ('Andrew Jackson', 'Arthur Wellsley',
                          'Otto von Bismarck', 'Napoleon'), 0),
         Question_Object(
             'American involvement in the Korean War took place in which decade?',
             ('1950s', '1960s', '1970s', '1980s'), 0),
         Question_Object(
             'The Battle of Hastings in 1066 was fought in which country?  ',
             ('France', 'Russia', 'England', 'Norway'), 3),
         Question_Object(
             'The Magna Carta was published by the King of which country? ',
             ('France', 'Austria', 'Italy', 'England'), 3),
         Question_Object(
             'The first successful printing press was developed by this man.',
             ('Johannes Gutenburg', 'Benjamin Franklin', 'Sir Isaac Newton',
              'Martin Luther'), 0)
     ]
     self.score_text_block = TextBlock(
         500, 10, 250, 50,
         "Score: {0}/{1}".format(str(self.score), str(len(self.questions))))
     self.objects.append(self.score_text_block)
     self.nextQuestion()
     self.game_over_text_block = TextBlock(250, 250, 300, 50, "Game over")
    def on_align_columns_activate(self, action):
        """Callback to align columns on menu click or accelerator."""
        doc = self._window.get_active_document()
        bounds = doc.get_selection_bounds()

        if not doc or not bounds:
            return

        text = doc.get_text(*bounds)
        try:
            text_block = TextBlock(text)
            aligned_columns = text_block.align()
            doc.delete_interactive(*bounds, default_editable=True)
            doc.insert(bounds[0], aligned_columns)
        except WhiteSpacesError:
            return
        except DifferentNumberOfColumnsError:
            message = gtk.MessageDialog(None, 0, gtk.MESSAGE_WARNING, gtk.BUTTONS_OK,
                                        'The selection has lines with different numbers of columns.')
            message.run()
            message.destroy()
Пример #15
0
    def on_align_columns_activate(self, action):
        """Callback to align columns on menu click or accelerator."""
        doc = self._window.get_active_document()
        bounds = doc.get_selection_bounds()

        if not doc or not bounds:
            return

        text = doc.get_text(*bounds)
        try:
            text_block = TextBlock(text)
            aligned_columns = text_block.align()
            doc.delete_interactive(*bounds, default_editable=True)
            doc.insert(bounds[0], aligned_columns)
        except WhiteSpacesError:
            return
        except DifferentNumberOfColumnsError:
            message = gtk.MessageDialog(None, 0, gtk.MESSAGE_WARNING, gtk.BUTTONS_OK,
                                        'The selection has lines with different numbers of columns.')
            message.run()
            message.destroy()
Пример #16
0
	def addTextBlock(self, x, y, w, h, text):
		self.objects.append(TextBlock(x, y, w, h, text))
class TextBlockSpec(unittest.TestCase):

    def setUp(self):
        self.text = """

        | name | phone| company     |
        |Hugo Maia Vieira| (22) 8512-7751 | UENF |
        |Rodrigo Manhães | (22) 9145-8722 |NSI|

        """
        self.text_block = TextBlock(self.text)

    def should_not_initialize_with_a_text_empty_or_composed_by_white_spaces(self):
        text = ''
        (lambda: TextBlock(text)) |should| throw(WhiteSpacesError)

        text = '  \n'
        (lambda: TextBlock(text)) |should| throw(WhiteSpacesError)

        text = '  \t'
        (lambda: TextBlock(text)) |should| throw(WhiteSpacesError)

        text = '    |'
        (lambda: TextBlock(text)) |should_not| throw(WhiteSpacesError)

    def should_return_the_number_of_columns(self):
        self.text_block.get_columns_number() |should| equal_to(3)

        text = "| name | phone |"
        text_block = TextBlock(text)
        text_block.get_columns_number() |should| equal_to(2)

        text = """
        | name | phone |
        | None |
        """
        (lambda: TextBlock(text)) |should| throw(DifferentNumberOfColumnsError)

    def it_should_return_a_list_of_non_empty_lines(self):
        _list = self.text_block.text_to_lines(self.text)
        _list |should| have(3).lines
        _list |should| include('        | name | phone| company     |')
        _list |should| include('        |Hugo Maia Vieira| (22) 8512-7751 | UENF |')
        _list |should| include('        |Rodrigo Manhães | (22) 9145-8722 |NSI|')

    def it_should_return_a_list_with_the_items_in_a_line(self):
        self.text_block.lines_list[0] |should| include_all_of(['name', 'phone', 'company'])
        self.text_block.lines_list[1] |should| include_all_of(['Hugo Maia Vieira', '(22) 8512-7751', 'UENF'])
        self.text_block.lines_list[2] |should| include_all_of([u'Rodrigo Manhães', '(22) 9145-8722', 'NSI'])

    def it_should_accept_empty_string_between_pipes(self):
        text = """
        || phone|
        |something  |  |
        """
        text_block = TextBlock(text)
        text_block.lines_list[0] |should| include_all_of([' ', 'phone'])
        text_block.lines_list[1] |should| include_all_of(['something', ' '])

    def it_should_return_a_list_with_the_tabulation_before_each_line(self):
        text = """
            |name|age|
        |something|19|
        """
        text_block = TextBlock(text)
        text_block.tabulation |should| equal_to(['            ', '        '])
        text_block.tabulation |should| have(2).items


        text = """|name|age|
        |someone|22|"""
        text_block = TextBlock(text)
        text_block.tabulation |should| equal_to(['', '        '])
        text_block.tabulation |should| have(2).items


    def should_have_a_list_with_the_max_leng_of_each_column(self):
        self.text_block.columns[0] |should| equal_to(16)
        self.text_block.columns[1] |should| equal_to(14)
        self.text_block.columns[2] |should| equal_to(7)


    def it_should_align_the_text_block(self):
        self.text_block.align() |should| equal_to(u"""        | name             | phone          | company |
        | Hugo Maia Vieira | (22) 8512-7751 | UENF    |
        | Rodrigo Manhães  | (22) 9145-8722 | NSI     |""")

        text = """| name | phone| company     |
    |Hugo Maia Vieira| (22) 8512-7751 | UENF |
    |Rodrigo Manhães | (22) 9145-8722 |NSI|"""
        text_block = TextBlock(text)
        text_block.align() |should| equal_to(u"""| name             | phone          | company |
    | Hugo Maia Vieira | (22) 8512-7751 | UENF    |
    | Rodrigo Manhães  | (22) 9145-8722 | NSI     |""")
Пример #18
0
class TextBlockSpec(unittest.TestCase):
    def setUp(self):
        self.text = """

        | name | phone| company     |
        |Hugo Maia Vieira| (22) 8512-7751 | UENF |
        |Rodrigo Manhães | (22) 9145-8722 |NSI|

        """
        self.text_block = TextBlock(self.text)

    def should_not_initialize_with_a_text_empty_or_composed_by_white_spaces(
            self):
        text = ''
        (lambda: TextBlock(text)) | should | throw(WhiteSpacesError)

        text = '  \n'
        (lambda: TextBlock(text)) | should | throw(WhiteSpacesError)

        text = '  \t'
        (lambda: TextBlock(text)) | should | throw(WhiteSpacesError)

        text = '    |'
        (lambda: TextBlock(text)) | should_not | throw(WhiteSpacesError)

    def should_return_the_number_of_columns(self):
        self.text_block.get_columns_number() | should | equal_to(3)

        text = "| name | phone |"
        text_block = TextBlock(text)
        text_block.get_columns_number() | should | equal_to(2)

        text = """
        | name | phone |
        | None |
        """
        (lambda: TextBlock(text)
         ) | should | throw(DifferentNumberOfColumnsError)

    def it_should_return_a_list_of_non_empty_lines(self):
        _list = self.text_block.text_to_lines(self.text)
        _list | should | have(3).lines
        _list | should | include('        | name | phone| company     |')
        _list | should | include(
            '        |Hugo Maia Vieira| (22) 8512-7751 | UENF |')
        _list | should | include(
            '        |Rodrigo Manhães | (22) 9145-8722 |NSI|')

    def it_should_return_a_list_with_the_items_in_a_line(self):
        self.text_block.lines_list[0] | should | include_all_of(
            ['name', 'phone', 'company'])
        self.text_block.lines_list[1] | should | include_all_of(
            ['Hugo Maia Vieira', '(22) 8512-7751', 'UENF'])
        self.text_block.lines_list[2] | should | include_all_of(
            [u'Rodrigo Manhães', '(22) 9145-8722', 'NSI'])

    def it_should_accept_empty_string_between_pipes(self):
        text = """
        || phone|
        |something  |  |
        """
        text_block = TextBlock(text)
        text_block.lines_list[0] | should | include_all_of([' ', 'phone'])
        text_block.lines_list[1] | should | include_all_of(['something', ' '])

    def it_should_return_a_list_with_the_tabulation_before_each_line(self):
        text = """
            |name|age|
        |something|19|
        """
        text_block = TextBlock(text)
        text_block.tabulation | should | equal_to(['            ', '        '])
        text_block.tabulation | should | have(2).items

        text = """|name|age|
        |someone|22|"""
        text_block = TextBlock(text)
        text_block.tabulation | should | equal_to(['', '        '])
        text_block.tabulation | should | have(2).items

    def should_have_a_list_with_the_max_leng_of_each_column(self):
        self.text_block.columns[0] | should | equal_to(16)
        self.text_block.columns[1] | should | equal_to(14)
        self.text_block.columns[2] | should | equal_to(7)

    def it_should_align_the_text_block(self):
        self.text_block.align() | should | equal_to(
            u"""        | name             | phone          | company |
        | Hugo Maia Vieira | (22) 8512-7751 | UENF    |
        | Rodrigo Manhães  | (22) 9145-8722 | NSI     |""")

        text = """| name | phone| company     |
    |Hugo Maia Vieira| (22) 8512-7751 | UENF |
    |Rodrigo Manhães | (22) 9145-8722 |NSI|"""
        text_block = TextBlock(text)
        text_block.align() | should | equal_to(
            u"""| name             | phone          | company |
    | Hugo Maia Vieira | (22) 8512-7751 | UENF    |
    | Rodrigo Manhães  | (22) 9145-8722 | NSI     |""")