コード例 #1
0
    def test_generate_commentory(self):
        test_message_string = "3.2 Test Player scores 2 run"
        test_out_message_string = "3.2 Test Player out"

        message_string = Commentary.generate_commentary(current_over=3, current_ball=2, name='Test Player', run=2)
        message_out_string = Commentary.generate_commentary(current_over=3, current_ball=2, name='Test Player', run=None)

        self.assertEqual(test_message_string,message_string)
        self.assertEqual(test_out_message_string, message_out_string)

        print("Generate Commentory test case executed successfully", end='\n\n')
コード例 #2
0
    def test_generate_summary(self):
        test_message_string = "Match Drawn"

        message_string = Commentary.generate_summary(losing_team=None, winning_team=None)

        self.assertEqual(test_message_string, message_string)

        print("Generate Summary for match drawn test case executed successfully", end='\n\n')
コード例 #3
0
    def test_generate_commentary_over_wise(self):
        test_message_string = "1 overs remaining and 11 runs to win"

        message_string = Commentary.generate_commentary_over_wise(overs_left=1, runs_to_win=11)

        self.assertEqual(test_message_string, message_string)

        print("Generate Commentory over wise test case executed successfully", end='\n\n')
コード例 #4
0
ファイル: app.py プロジェクト: AngelOrdon02/heroky
def insertCommentary():
    global Comments

    # obteniendo el ultimo id para tener un correlativo
    commentary = Comments[-1]
    position = commentary.getId() + 1

    new = Commentary(position, request.json['id_user'],
                     request.json['username_user'], request.json['id_song'],
                     request.json['date'], request.json['description'])
    Comments.append(new)
    answer = jsonify({'message': 'Added commentary'})
    return (answer)
コード例 #5
0
    def test_generate_losing_team_summary(self):
        test_losing_message_string = "team2 lost by 1 wicket  Kirat Boli - 36* (6 balls ) N S Nodhi - 0* (0 balls )"

        team2 = Team("team2")

        p3 = Player('Kirat Boli', batting_order=1, probability_distribution=[0, 0, 0, 0, 0, 0, 100, 0])
        p4 = Player('N S Nodhi', batting_order=2, probability_distribution=[0, 0, 0, 0, 0, 0, 100, 0])

        team2.add_players(p3)
        team2.add_players(p4)

        team2.play(overs=1, balls_per_over=6, target=40)

        losing_message_string = Commentary.generate_team_summary(team2, is_winner=0)

        self.assertEqual(test_losing_message_string, losing_message_string)

        print("Generate Summary for losing team test case executed successfully", end='\n\n')
コード例 #6
0
    def test_generate_winning_team_summary(self):
        test_winning_message_string = "team1 won by 1 wicket and 3 over 0 balls remaining Kirat Boli - 36* (6 balls ) N S Nodhi - 0* (0 balls )"

        team1 = Team("team1")

        p1 = Player('Kirat Boli', batting_order=1, probability_distribution=[0, 0, 0, 0, 0, 0, 100, 0])
        p2 = Player('N S Nodhi', batting_order=2, probability_distribution=[0, 0, 0, 0, 0, 0, 100, 0])

        team1.add_players(p1)
        team1.add_players(p2)

        team1.play(overs=4, balls_per_over=6, target=35)

        winning_message_string = Commentary.generate_team_summary(team1, is_winner=1)

        self.assertEqual(test_winning_message_string, winning_message_string)

        print("Generate Summary for winning team test case executed successfully", end='\n\n')
コード例 #7
0
team1 = Team('Bengaluru')

team2 = Team('Chennai')
team2.set_runs(40)

p1 = Player('Kirat Boli',
            batting_order=1,
            probability_distribution=[5, 30, 25, 10, 15, 1, 9, 5])
p2 = Player('N S Nodhi',
            batting_order=2,
            probability_distribution=[10, 40, 20, 5, 10, 1, 4, 10])
p3 = Player('R Rumrah',
            batting_order=3,
            probability_distribution=[20, 30, 15, 5, 5, 1, 4, 20])
p4 = Player('Shashi Henra',
            batting_order=4,
            probability_distribution=[30, 25, 5, 0, 5, 1, 4, 30])

team1.add_players(p1)
team1.add_players(p2)
team1.add_players(p3)
team1.add_players(p4)

game.add_team(team1)
game.add_team(team2)

result_object = game.play()

Commentary.generate_summary(result_object["winning_team"],
                            result_object["losing_team"])
コード例 #8
0
    def play(self, overs, balls_per_over, target):
        self.total_overs = overs
        self.balls_per_over = balls_per_over

        # set state of a team to batting
        self.set_state(1)

        # set active players
        self.set_active_players()

        runs_to_win = target - self.runs_scored

        current_over = 0
        while current_over < overs and runs_to_win >= 0:
            if target:
                Commentary.generate_commentary_over_wise(
                    self.total_overs - current_over, runs_to_win)
            else:
                Commentary.generate_commentary_over_wise(self.total_overs -
                                                         current_over)

            current_ball = 1
            while current_ball <= balls_per_over and runs_to_win >= 0:

                self.total_balls_played += 1

                self.current_player = self.active_players[
                    self.current_active_player_index]

                if self.current_player.get_position_on_pitch() == 0:
                    self.current_player.set_position_on_pitch(1)

                runs = self.current_player.play(Game.available_runs)

                # Generate ball by ball commentary
                Commentary.generate_commentary(current_over, current_ball,
                                               self.current_player.name, runs)

                # updating total runs of a team
                if runs is not None:
                    self.set_runs(runs)
                    runs_to_win = target - self.runs_scored

                if runs == 1 or runs == 3 or runs == 5:
                    self.change_positions()

                # when a player is out
                if runs is None:
                    # setting current player state to out i.e. 0
                    self.current_player.set_state(0)

                    # changing active players and setting it to next player
                    next_player = self.get_next_player()
                    if next_player:
                        self.active_players[
                            self.current_active_player_index] = next_player
                    else:
                        return self.runs_scored

                current_ball += 1

            current_over += 1

            self.total_overs_played += 1

            # change position after every over
            self.change_positions()

        # set state of the team again
        self.set_state(1)

        return self.runs_scored
コード例 #9
0
def main(_):
    cfg = config.Config({
        'env_name':
        FLAGS.env_name,
        'action_set':
        FLAGS.action_set,
        'away_players':
        FLAGS.away_players.split(',') if FLAGS.away_players else '',
        'dump_full_episodes':
        True,
        'home_players':
        FLAGS.home_players.split(',') if FLAGS.home_players else '',
        'real_time':
        FLAGS.real_time,
        'render':
        True
    })
    if FLAGS.level:
        cfg['level'] = FLAGS.level

    model_name = '345M'
    seed = None
    length = 80
    temperature = 1
    top_k = 0
    top_p = 0.0

    enc = encoder.get_encoder(model_name)
    hparams = model.default_hparams()
    with open(os.path.join('models', model_name, 'hparams.json')) as f:
        hparams.override_from_dict(json.load(f))
    gpu_options = tf.GPUOptions(allow_growth=True)
    with tf.Session(graph=tf.Graph(),
                    config=tf.ConfigProto(gpu_options=gpu_options)) as sess:
        context = tf.placeholder(tf.int32, [1, None])
        np.random.seed(seed)
        tf.set_random_seed(seed)
        output = sample.sample_sequence(hparams=hparams,
                                        length=length,
                                        context=context,
                                        batch_size=1,
                                        temperature=temperature,
                                        top_k=top_k,
                                        top_p=top_p)

        saver = tf.train.Saver()
        ckpt = tf.train.latest_checkpoint(os.path.join('models', model_name))
        saver.restore(sess, ckpt)

        context_tokens = enc.encode('initializing')
        out = sess.run(output,
                       feed_dict={context:
                                  [context_tokens
                                   for _ in range(1)]})[:,
                                                        len(context_tokens):]
        enc.decode(out[0])

        env = football_env.FootballEnv(cfg)
        env.reset(cfg)
        commentary = Commentary()
        try:
            prompt = 'initializing'
            commentary_thread = threading.Thread(target=threaded_inference,
                                                 args=(enc, prompt, sess,
                                                       output, context))

            while True:
                observation, reward, done, info = env.step(None)
                prompt, interrupt_current_commentary = commentary.process_observation(
                    observation)
                if prompt:
                    if commentary_thread.is_alive():
                        if interrupt_current_commentary:
                            # commentary_thread kill/stop
                            # commentary_thread.start()
                            print('thread alive')
                    else:
                        commentary_thread = threading.Thread(
                            target=threaded_inference,
                            args=(enc, prompt, sess, output, context))
                        commentary_thread.start()
                if done:
                    env.reset()
        except KeyboardInterrupt:
            env.write_dump('shutdown')
            exit(1)
コード例 #10
0
ファイル: app.py プロジェクト: AngelOrdon02/heroky
         'https://www.youtube.com/embed/lFw6sxMGIHk', 1))

Songs.append(
    Song(3, 'Vibra Positiva - inactiva', 'Zona Ganjah',
         'Con Rastafari Todo Concuerda',
         'https://i.scdn.co/image/ab67616d0000b273fb61203117d2324964d71c47',
         '2005', 'https://open.spotify.com/embed/track/061cp08tzW2q8qaqNkad28',
         'https://www.youtube.com/embed/lFw6sxMGIHk', 2))
Songs.append(
    Song(4, 'Vibra Positiva - inactiva', 'Zona Ganjah',
         'Con Rastafari Todo Concuerda',
         'https://i.scdn.co/image/ab67616d0000b273fb61203117d2324964d71c47',
         '2005', 'https://open.spotify.com/embed/track/061cp08tzW2q8qaqNkad28',
         'https://www.youtube.com/embed/lFw6sxMGIHk', 2))

Comments.append(Commentary(1, 1, 'root', 1, '2020', 'Que buena rola'))
Comments.append(Commentary(2, 2, 'diego', 1, '2020', 'La escucho diario'))
Comments.append(Commentary(3, 1, 'root', 2, '2020', 'Me levanta el animo'))
Comments.append(Commentary(4, 2, 'diego', 2, '2020', 'Buen ritmo'))

Playlists.append(Playlist(1, 1, 'Rolitas', 'Musica favorita :D'))
Playlists.append(Playlist(2, 2, 'Musica varia', 'Musica para el gimnasio'))

Playlist_song_array.append(Playlist_song(1, 1, 1))
Playlist_song_array.append(Playlist_song(2, 2, 1))
Playlist_song_array.append(Playlist_song(3, 1, 2))
Playlist_song_array.append(Playlist_song(4, 2, 2))

# --------------- CONTADORES ---------------
# Es cinco porque ya hay 4 registros en las lineas (29 - 33)
cont_song = 5