Beispiel #1
0
 def __init__(self):
     self.configname = './tests/test_configs/tasks.cfg'
     Settings.init(config_file=self.configname)
     ContextLogger.createLoggingHandlers(config=Settings.config)
     self.taskdir = Settings.config.get('tasks', 'savedir')
     if not os.path.isdir(self.taskdir):
         os.mkdir(self.taskdir)
     savename = Settings.config.get('tasks', 'savename')
     self.taskfile = self.taskdir + savename + '.json'
Beispiel #2
0
 def test_simulate_multidomain(self):
     '''Run HDC policy for domains in 2 multi domain dialogues
     '''
     Settings.init(config_file='./tests/test_configs/simulate_multiDomains_HDC.cfg')
     ContextLogger.createLoggingHandlers(config=Settings.config)
     logger = ContextLogger.getLogger('')
     logger.info("Starting HDC Multidomain Simulation")
     reload(Ontology.FlatOntologyManager)        # since this has a singleton class
     Ontology.init_global_ontology()
     simulator = Simulate.SimulationSystem(error_rate=0.1)
     simulator.run_dialogs(2)    # run 2 dialogues
Beispiel #3
0
 def test_simulate_multidomain(self):
     '''Run 2 dialogues with the multidomain system and GP policies
     (NB: config needs to explicitly set each domain to use gp actually...)
     '''
     Settings.init(config_file='./tests/test_configs/simulate_multiDomains_GP.cfg')
     ContextLogger.createLoggingHandlers(config=Settings.config)
     logger = ContextLogger.getLogger('')
     logger.info("Starting GP Multidomain Simulation")
     reload(Ontology.FlatOntologyManager)        # since this has a singleton class
     Ontology.init_global_ontology()
     simulator = Simulate.SimulationSystem(error_rate=0.1)
     simulator.run_dialogs(2)    # run 2 dialogues
Beispiel #4
0
    def test_simulate_singledomain_for_all_domains(self):
        '''Loop over all domains and runs 2 dialogues with GP policy in each
        '''
        import numpy.random as nprand
        # not seeding this - so will be based on system clock--> meaning TESTING here will be somewhat random -->
        # NOTE --> THIS IS !!!REALLY REALLY REALLY!!! NOT IN THE SPIRIT OF (UNIT) TESTING - WHICH SHOULD NEVER BE ~RANDOM
        # doing it to get a little more coverage of testing without writing permutations of explicit tests ...

        Settings.init(
            config_file=
            './tests/test_configs/simulate_singledomain_for_all_domains.cfg')
        ContextLogger.createLoggingHandlers(config=Settings.config)
        logger = ContextLogger.getLogger('')
        domains = TestingUtils.get_loop_over_domains()
        for dstring in domains:
            Settings.config.set("GENERAL", 'domains', dstring)
            logger.info("Starting GP Single Domain Simulation for " + dstring)

            # [policy_DOMAINTAG]
            Settings.config.add_section('policy_' + dstring)
            Settings.config.set('policy_' + dstring, 'learning', 'True')
            Settings.config.set('policy_' + dstring, 'policytype', 'gp')
            # no inpolicy file give --> starts with empty file (random policy)
            Settings.config.set('policy_' + dstring, 'outpolicyfile',
                                'tests/test_gp/' + dstring)
            if nprand.uniform() > 0.5:
                Settings.config.set('policy_' + dstring, 'belieftype',
                                    'baseline')
            else:
                Settings.config.set('policy_' + dstring, 'belieftype', 'focus')

            # [gppolicy_DOMAINTAG]
            Settings.config.add_section('gppolicy_' + dstring)
            if nprand.uniform() > 0.5:
                Settings.config.set('gppolicy_' + dstring, 'kernel',
                                    'polysort')
            else:
                Settings.config.set('gppolicy_' + dstring, 'kernel',
                                    'gausssort')
            if nprand.uniform() > 0.5:
                Settings.config.set('gppolicy_' + dstring, 'actionkerneltype',
                                    'delta')
            else:
                Settings.config.set('gppolicy_' + dstring, 'actionkerneltype',
                                    'hdc')
            reload(Ontology.FlatOntologyManager
                   )  # since this has a singleton class
            Ontology.init_global_ontology()
            simulator = Simulate.SimulationSystem(error_rate=0.1)
            simulator.run_dialogs(2)  # run 2 dialogues
Beispiel #5
0
 def test_simulate_singledomain_for_all_domains(self):
     '''Loop over all domains and run 2 dialogues via HDC policy in each
     '''
     Settings.init(config_file='./tests/test_configs/simulate_singledomain_for_all_domains.cfg')
     ContextLogger.createLoggingHandlers(config=Settings.config)
     logger = ContextLogger.getLogger('')
     domains = TestingUtils.get_loop_over_domains()
     for dstring in domains:
         Settings.config.set("GENERAL", 'domains', dstring)
         # no policy settings given --> defaults to HDC
         logger.info("Starting HDC Single Domain Simulation for "+dstring)
         reload(Ontology.FlatOntologyManager)        # since this has a singleton class
         Ontology.init_global_ontology()
         simulator = Simulate.SimulationSystem(error_rate=0.1)
         simulator.run_dialogs(2)    # run 2 dialogues
Beispiel #6
0
                        type=argparse.FileType('r'))
    parser.add_argument('-n',
                        '--number',
                        help='set the number of dialogues',
                        type=int)
    parser.add_argument('-r', '--error', help='set error rate', type=int)
    parser.set_defaults(use_color=True)
    parser.add_argument('--nocolor',
                        dest='use_color',
                        action='store_false',
                        help='no color in logging. best to\
                        turn off if dumping to file. Will be overriden by [logging] config setting of "usecolor=".'
                        )
    parser.add_argument('-s', '--seed', help='set random seed', type=int)
    args = parser.parse_args()
    if args.error is None:
        args.error = 0  # default simulated error rate
    if args.number is None:
        args.number = 1  # default number of dialogs

    seed = Settings.init(config_file=args.config.name, seed=args.seed)
    ContextLogger.createLoggingHandlers(config=Settings.config,
                                        use_color=args.use_color)
    logger.info("Random Seed is {}".format(seed))
    Ontology.init_global_ontology()

    simulator = SimulationSystem(error_rate=float(args.error) / 100)
    simulator.run_dialogs(args.number)

#END OF FILE
Beispiel #7
0
 def __init__(self):
     # cfg = 'tests/test_configs/dialogueserver-KUSTOM.cfg'
     cfg = 'tests/test_configs/dialogueserver-Films.cfg'
     assert (os.path.exists(cfg))
     Settings.init(config_file=cfg)
     ContextLogger.createLoggingHandlers(config=Settings.config)
Beispiel #8
0
        """
        """
        Settings.set_seed(None)
        self.random_task_id = Settings.random.choice(self.task_ids)
        return self.get_task_by_id(task_id=self.random_task_id)


if __name__=="__main__":
    reload(sys)  
    sys.setdefaultencoding('utf8')  # good practise i think to ensure taskfile is readable on Camdial.org 
    if len(sys.argv) == 1:
        Usage = "python Tasks.py -C config -s random seed" 
        exit(Usage)
    
    parser = argparse.ArgumentParser(description='Task generator')
    parser.add_argument('-C','-c', '--config', help='set config file', required=True, type=argparse.FileType('r'))
    parser.add_argument('-s', '--seed', help='set random seed - overrides configs seed', type=int)
    args = parser.parse_args()

    Settings.init(config_file=args.config.name, seed=args.seed)
    Ontology.init_global_ontology()
    ContextLogger.createLoggingHandlers(config=Settings.config)

    task_generator = TaskCreator()
    task_generator._create()
    task_generator._write()



#END OF FILE