def test_when_new_word_is_too_long_it_should_replace_characters_with_at_symbol(self): pencil = Pencil() pencil.write(self.paper, "An a day keeps the doctor away") pencil.edit(self.paper, "artichoke") self.assertEqual("An artich@k@ay keeps the doctor away", self.paper.read())
def test_sharpen_pencil_decrease_length_by_one(self): p = Pencil(pencilLength=4, eraserDurability=4) new_text = p.pencil_write('abcdef') self.assertEqual(p.pointDurability, 39994) p.pencil_sharpen() self.assertEqual(p.pointDurability, 40000) self.assertEqual(p.pencilLength, 3)
def test_editing_should_replace_erased_word_with_new_text(self): pencil = Pencil() pencil.write(self.paper, "An a day keeps the doctor away") pencil.edit(self.paper, "onion") self.assertEqual("An onion a day keeps the doctor away", self.paper.read())
def test_once_sharpened_to_length_0_it_does_not_restore_point_durability(): pencil = Pencil(5, 1) assert pencil.write('Texts') == 'Text ' pencil.sharpen() assert pencil.write('Texts') == 'Text ' pencil.sharpen() assert pencil.write('Texts') == ' '
def test_pencil_should_write_text(self): pencil = Pencil() text = "What possessed the first man to ride a horse?" pencil.write(self.paper, text) self.assertEqual(text, self.paper.read())
def test_write_throws_when_given_non_string_text(): pencil = Pencil() raisedException = False try: pencil.write(7) except ValueError: raisedException = True assert (raisedException)
def test_pencil_cannot_be_sharpened_past_its_length(self): pencil = Pencil(point_durability=1, length=2) for c in "text": pencil.write(self.paper, c) pencil.sharpen() self.assertEqual("tex ", self.paper.read())
def test_when_pencil_is_sharpened_it_regains_full_durability(self): pencil = Pencil(point_durability=4) pencil.write(self.paper, "text") pencil.sharpen() pencil.write(self.paper, "texts") self.assertEqual("texttext ", self.paper.read())
def test_when_new_word_goes_beyond_end_of_paper_it_should_be_appended_to_the_end(self): pencil = Pencil() pencil.write(self.paper, "A short phrase") pencil.erase(self.paper, "phrase") pencil.edit(self.paper, "sentence") self.assertEqual("A short sentence", self.paper.read())
def test_when_pencil_eraser_degrades_fully_it_should_stop_erasing(self): eraser = Eraser(durability=4) pencil = Pencil(eraser=eraser) pencil.write(self.paper, "I am related to Buffalo Bill") pencil.erase(self.paper, "Bill") pencil.erase(self.paper, "Buffalo") self.assertEqual("I am related to Buffalo ", self.paper.read())
def test_whitespaceDoesntDepleteErasers(self): p = Pencil(length=40, pointDurability=1000, eraserDurability=5) p.write("last on last night's schedule was immigration law") p.erase(" was ") self.assertTrue( p.getText() == "last on last night's schedule immigration law") p.erase("la") self.assertTrue( p.getText() == "last on last night's schedule immigration w")
def test_erasersWearOut(self): p = Pencil(length=40, pointDurability=1000, eraserDurability=2) p.write("last on last night's schedule was immigration law") p.erase("la") self.assertTrue( p.getText() == "last on last night's schedule was immigration w") p.erase("la") self.assertTrue( p.getText() == "last on last night's schedule was immigration w")
def test_erasingTextReplacesItsLastOccurrenceWithSpaces(self): p = Pencil(length=40, pointDurability=1000, eraserDurability=200) p.write("last on last night's schedule was immigration law") p.erase("la") self.assertTrue( p.getText() == "last on last night's schedule was immigration w") p.erase("la") self.assertTrue( p.getText() == "last on st night's schedule was immigration w")
def test_erasing_should_erase_opposite_direction_of_the_written_order( self): eraser = Eraser(durability=3) pencil = Pencil(eraser=eraser) pencil.write(self.paper, "I am related to Buffalo Bill") pencil.erase(self.paper, "Bill") self.assertEqual("I am related to Buffalo B ", self.paper.read())
def graph_url(self): at = "%H:%M_%Y%m%d" graph_url = Pencil(begin=self.first_violation.strftime(at), until=self.last_violation.strftime(at)) graph_url.add_metric(self.metricalert.target) graph_url.add_metric("threshold(%i)" % self.threshold_violated, alias="Threshold", colors="blue,red") return graph_url.url(self.metricalert.server.base_url, 586, 306)
def __init__(self): super(MainWindow, self).__init__() # -- Variables -- self._h_mirror = False self._r_mirror = True self._r_mirror_amount = 5 self._is_fullscreen = False self._last_x = 0 self._last_y = 0 self._last_buffer_time = time.time() self._last_update_time = time.time() self._mouse_pressed = False # Image that holds the drawing. self._buffer_image = None # Image that holds the drawing, minus the last stroke (one continuous drag with the mouse). self._undo_buffer_image = None # Line buffer. self._lines = [] # ---- Initialize the pencils. ---- self._pencils = [] for i in range(0, 50): self._pencils.append(Pencil(0, 0, 0.2, 0.8, 0.8, 0.5)) # -- Drawing area -- self._area = Gtk.DrawingArea() # Capture button presses in drawing area. self._area.add_events(Gdk.EventMask.BUTTON_PRESS_MASK) self.add_events(Gdk.EventMask.KEY_PRESS_MASK) self._area.add_events(Gdk.EventMask.BUTTON_RELEASE_MASK) self._area.add_events(Gdk.EventMask.POINTER_MOTION_MASK) # Connect events. self._area.connect('draw', self._draw) self.connect('key-press-event', self._key_press) self._area.connect('button-press-event', self._button_press) self._area.connect('button-release-event', self._button_release) self._area.connect('motion-notify-event', self._motion_notify) # Visuals update GLib.timeout_add(10, self._update) self.set_size_request(1000, 500) self.add(self._area)
def test_sharpen_pencil_by_five_decrease_length_by_four_set_pencil_durability_to_zero( self): p = Pencil(pencilLength=4, eraserDurability=4) p.pencil_sharpen() p.pencil_sharpen() p.pencil_sharpen() p.pencil_sharpen() p.pencil_sharpen() self.assertEqual(p.pencilLength, 0) self.assertEqual(p.pointDurability, 0)
def test_when_the_word_to_be_erased_is_not_found_nothing_should_be_erased( self): eraser = Eraser() pencil = Pencil(eraser=eraser) text = "Nothing to erase here" pencil.write(self.paper, text) pencil.erase(self.paper, "Something") self.assertEqual(text, self.paper.read())
def test_write_max_point_durability(self): p = Pencil(pencilLength=4, eraserDurability=4) f = open('test/input/sample_input.txt', 'r') input_text = f.read() f.close() f = open('test/input/sample_output.txt', 'r') output_text = f.read() f.close() written_text = p.pencil_write(text_to_write=input_text) self.assertEqual(p.pointDurability, 0) self.assertEqual(written_text, output_text)
def check_graphite_servers(): from missioncontrol.models import GraphiteServer for server in GraphiteServer.objects.all(): for metricalert in server.metric_alerts.all(): metric_url = Pencil(begin=metricalert._from).add_metric( metricalert.target).format('json').url( server.base_url, 0, 0) metric_resp = requests.get(metric_url, auth=(server.username, server.password)) metricalert.check(metric_resp.json)
def test_when_pencil_writes_additional_text_it_should_append_to_existing_text(self): pencil = Pencil() text_part_a = "I'm not the kind of man " text_part_b = "who can just walk into a bouncy castle." pencil.write(self.paper, text_part_a) pencil.write(self.paper, text_part_b) expected = text_part_a + text_part_b self.assertEqual(expected, self.paper.read())
def test_pencil(): from itertools import product comm = MPI.COMM_WORLD sizes = (7, 8, 9, 16, 17, 24) types = 'fdgFDG' atol = dict(f=1e-6, d=1e-14, g=1e-15) for typecode in types: for M, N, P in product(sizes, sizes, sizes): if P % 2: continue fft = Pencil(comm, (M, N, P), typecode) shape = fft.forward_input_array.shape dtype = fft.forward_input_array.dtype U = np.random.random(shape).astype(dtype) if 0: F = fft.forward(U) V = fft.backward(F) else: fft.forward_input_array[...] = U fft.forward() fft.backward() V = fft.backward_output_array fft.destroy() assert np.allclose(U, V, atol=atol[typecode.lower()], rtol=0)
def test_write_one_lowercase_letter_and_one_whitespace_decrease_point_durabitlity_by_one( self): p = Pencil(pencilLength=4, eraserDurability=4) written_text = p.pencil_write(text_to_write="a ") self.assertEqual(p.pointDurability, 39999) self.assertEqual(written_text, "a ")
def test_write_two_lowercase_letter_two_uppercase_letter_decrease_point_durabilty_by_six( self): p = Pencil(pencilLength=4, eraserDurability=4) written_text = p.pencil_write(text_to_write="ABcd") self.assertEqual(p.pointDurability, 39994) self.assertEqual(written_text, "ABcd")
def test_create_a_new_pencil_with_lenght_four_and_eraser_durability_four( self): p = Pencil(pencilLength=4, eraserDurability=4) self.assertEqual(p.pencilLength, 4) self.assertEqual(p.eraserDurability, 4) self.assertEqual(p.pointDurability, 40000)
def test_erase_one_letter_with_white_space_update_the_eraser_durability_have_an_empty_string_with_two_white_spaces( self): p = Pencil(pencilLength=4, eraserDurability=4) erased_text = p.pencil_erase(text_to_erase='a ') self.assertEqual(p.eraserDurability, 3) self.assertEqual(erased_text, " ")
def test_erase_five_letters_with_eraser_durability_being_less_than_five_update_the_eraser_durability_to_have_a_string_with_one_letter_and_three_white_spaces( self): p = Pencil(pencilLength=4, eraserDurability=4) erased_text = p.pencil_erase(text_to_erase='abcde') self.assertEqual(p.eraserDurability, 0) self.assertEqual(erased_text, "a ")
def __init__(self): self.pencil = Pencil(pencilLength=4, eraserDurability=10) self.paper = ''
def test_editing_replaces_text(initial_text, new_text, output): paper = Paper(initial_text) pencil = Pencil() pencil.edit(paper, new_text) assert paper.buffer == output
def test_writing(): paper = Paper("She sells sea shells") pencil = Pencil() pencil.write(paper, " by the sea shore") assert paper.buffer == "She sells sea shells by the sea shore"