subtree(users/wpcarro): docking briefcase at '24f5a642'
				
					
				
			git-subtree-dir: users/wpcarro git-subtree-mainline:464bbcb15cgit-subtree-split:24f5a642afChange-Id: I6105b3762b79126b3488359c95978cadb3efa789
This commit is contained in:
		
						commit
						019f8fd211
					
				
					 766 changed files with 175420 additions and 0 deletions
				
			
		
							
								
								
									
										51
									
								
								users/wpcarro/scratch/deepmind/part_one/stock-price.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								users/wpcarro/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