Splice ./universe directory into ./
Manually merging: - README.md: I added the description from universe/README.md into the heading of dotfiles/README.md. - .envrc: dotfiles/.envrc was a superset of universe/.envrc - .gitignore: Adding some of the ignored patterns from universe/.gitignore to dotfiles/.gitignore Everything else here should be a simple rename.
This commit is contained in:
		
							parent
							
								
									fb9380ba26
								
							
						
					
					
						commit
						5c9079a410
					
				
					 133 changed files with 17 additions and 7979 deletions
				
			
		|  | @ -1,82 +0,0 @@ | |||
| import unittest | ||||
| 
 | ||||
| 
 | ||||
| ################################################################################ | ||||
| # Solution | ||||
| ################################################################################ | ||||
| def length(x): | ||||
|     if not x: | ||||
|         return 0 | ||||
|     else: | ||||
|         count = 1 | ||||
|         while x: | ||||
|             x = x.next | ||||
|             count += 1 | ||||
|         return count | ||||
| 
 | ||||
| 
 | ||||
| def kth_to_last_node(k, x): | ||||
|     hops = length(x) - 1 | ||||
|     dest = hops - k | ||||
| 
 | ||||
|     if k == 0: | ||||
|         raise Exception("Our God doesn't support this kind of behavior.") | ||||
| 
 | ||||
|     if dest < 0: | ||||
|         raise Exception('Value k to high for list.') | ||||
| 
 | ||||
|     while dest > 0: | ||||
|         x = x.next | ||||
|         dest -= 1 | ||||
| 
 | ||||
|     return x | ||||
| 
 | ||||
| 
 | ||||
| ################################################################################ | ||||
| # Tests | ||||
| ################################################################################ | ||||
| class Test(unittest.TestCase): | ||||
|     class LinkedListNode(object): | ||||
|         def __init__(self, value, next=None): | ||||
|             self.value = value | ||||
|             self.next = next | ||||
| 
 | ||||
|         def get_values(self): | ||||
|             node = self | ||||
|             values = [] | ||||
|             while node is not None: | ||||
|                 values.append(node.value) | ||||
|                 node = node.next | ||||
|             return values | ||||
| 
 | ||||
|     def setUp(self): | ||||
|         self.fourth = Test.LinkedListNode(4) | ||||
|         self.third = Test.LinkedListNode(3, self.fourth) | ||||
|         self.second = Test.LinkedListNode(2, self.third) | ||||
|         self.first = Test.LinkedListNode(1, self.second) | ||||
| 
 | ||||
|     def test_first_to_last_node(self): | ||||
|         actual = kth_to_last_node(1, self.first) | ||||
|         expected = self.fourth | ||||
|         self.assertEqual(actual, expected) | ||||
| 
 | ||||
|     def test_second_to_last_node(self): | ||||
|         actual = kth_to_last_node(2, self.first) | ||||
|         expected = self.third | ||||
|         self.assertEqual(actual, expected) | ||||
| 
 | ||||
|     def test_first_node(self): | ||||
|         actual = kth_to_last_node(4, self.first) | ||||
|         expected = self.first | ||||
|         self.assertEqual(actual, expected) | ||||
| 
 | ||||
|     def test_k_greater_than_linked_list_length(self): | ||||
|         with self.assertRaises(Exception): | ||||
|             kth_to_last_node(5, self.first) | ||||
| 
 | ||||
|     def test_k_is_zero(self): | ||||
|         with self.assertRaises(Exception): | ||||
|             kth_to_last_node(0, self.first) | ||||
| 
 | ||||
| 
 | ||||
| unittest.main(verbosity=2) | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue