def test_add_ais(self): market = Market() self.assertEqual(len(market.ais), 0) ais = [AI(market.basic), AI(market.basic)] market.add_ais(ais) self.assertEqual(len(market.ais), 2) ai = AI(market.basic) market.add_ais(ai) self.assertEqual(len(market.ais), 3) self.assertIn(ai, market.ais)
class StockSimApp(App): def __init__(self): super(StockSimApp, self).__init__() self.market = Market() self.ais = generate_ai() self.market.add_ais(self.ais) for each in self.market.ais: each.market = copy(self.market.basic) self.user = User(self.market) self.current_company = "AAPL" self.current_price = str(float(self.market.basic["AAPL"][-1])) self.generate_graph(self.current_company) def start(self): Clock.schedule_interval(lambda dt: self.main_loop(self.market), 2) def main_loop(self, market): for each in market.ais: choice = each.choice(market.basic) if len(choice.keys()) > 0: for key in market.active_offers.keys(): market.active_offers[key].append(choice[key]) market.calculate() self.generate_graph(self.current_company) print(self.market.active_offers) def generate_graph(self, company): plt.style.use('dark_background') plt.plot(self.market.basic[company], color='#A967D5', marker='o', linewidth=2, markersize=5) plt.savefig('graph.jpg') plt.clf() def build(self): Config.set('graphics', 'fullscreen', 'auto') Config.write() screenmanager = ScreenManager() screenmanager.add_widget(MainScreen()) screenmanager.add_widget(ProfileScreen()) self.start() return screenmanager
def test_calculate(self): market = Market() market.add_ais([AI(market.basic), AI(market.basic), AI(market.basic)]) for each in market.ais: choice = each.choice(market.basic) if len(choice.keys()) > 0: for key in market.active_offers.keys(): market.active_offers[key].append(choice[key]) market.calculate() for each in market.ais: self.assertNotEqual(each.money, 8000) self.assertNotEqual( each.stocks, { 'AAPL': 0, 'AMD': 0, 'AMZN': 0, "INTC": 0, "MSFT": 0, "CSCO": 0, "GPRO": 0, "NVDA": 0 })