Tidy up structure of briefcase
I had a spare fifteen minutes and decided that I should tidy up my monorepo. The work of tidying up is not finished; this is a small step in the right direction. TL;DR - Created a tools directory - Created a scratch directory (see README.md for more information) - Added README.md to third_party - Renamed delete_dotfile_symlinks -> symlinkManager - Packaged symlinkManager as an executable symlink-mgr using buildGo
This commit is contained in:
		
							parent
							
								
									5ec5a6da8c
								
							
						
					
					
						commit
						fabf1c9334
					
				
					 89 changed files with 53 additions and 41 deletions
				
			
		
							
								
								
									
										51
									
								
								scratch/deepmind/part_one/stock-price.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								scratch/deepmind/part_one/stock-price.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,51 @@ | |||
| def get_max_profit(xs): | ||||
|     best_profit = xs[1] - xs[0] | ||||
|     lowest_buy = xs[0] | ||||
| 
 | ||||
|     for x in xs[1:]: | ||||
|         best_profit = max(best_profit, x - lowest_buy) | ||||
|         lowest_buy = min(lowest_buy, x) | ||||
|     return best_profit | ||||
| 
 | ||||
| 
 | ||||
| # Tests | ||||
| 
 | ||||
| import unittest | ||||
| 
 | ||||
| 
 | ||||
| class Test(unittest.TestCase): | ||||
|     def test_price_goes_up_then_down(self): | ||||
|         actual = get_max_profit([1, 5, 3, 2]) | ||||
|         expected = 4 | ||||
|         self.assertEqual(actual, expected) | ||||
| 
 | ||||
|     def test_price_goes_down_then_up(self): | ||||
|         actual = get_max_profit([7, 2, 8, 9]) | ||||
|         expected = 7 | ||||
|         self.assertEqual(actual, expected) | ||||
| 
 | ||||
|     def test_price_goes_up_all_day(self): | ||||
|         actual = get_max_profit([1, 6, 7, 9]) | ||||
|         expected = 8 | ||||
|         self.assertEqual(actual, expected) | ||||
| 
 | ||||
|     def test_price_goes_down_all_day(self): | ||||
|         actual = get_max_profit([9, 7, 4, 1]) | ||||
|         expected = -2 | ||||
|         self.assertEqual(actual, expected) | ||||
| 
 | ||||
|     def test_price_stays_the_same_all_day(self): | ||||
|         actual = get_max_profit([1, 1, 1, 1]) | ||||
|         expected = 0 | ||||
|         self.assertEqual(actual, expected) | ||||
| 
 | ||||
|     def test_error_with_empty_prices(self): | ||||
|         with self.assertRaises(Exception): | ||||
|             get_max_profit([]) | ||||
| 
 | ||||
|     def test_error_with_one_price(self): | ||||
|         with self.assertRaises(Exception): | ||||
|             get_max_profit([1]) | ||||
| 
 | ||||
| 
 | ||||
| unittest.main(verbosity=2) | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue