コード例 #1
0
    def test_expand_after_reload(self):
        ###Explore
        self.explore(self.traj)

        results = self.env.f_run(multiply)
        self.are_results_in_order(results)

        traj = self.traj
        self.assertTrue(
            len(traj) == len(compat.listvalues(self.explore_dict)[0]))

        self.traj.f_load_skeleton()
        self.traj.f_load_items(self.traj.f_to_dict().keys(), only_empties=True)
        self.check_if_z_is_correct(traj)

        self.expand(self.traj)

        self.env.f_run(multiply)
        traj = self.traj
        self.assertTrue(len(traj) == len(compat.listvalues(self.expand_dict)[0])+\
                        len(compat.listvalues(self.explore_dict)[0]))

        self.traj.f_load_skeleton()
        self.traj.f_load_items(self.traj.f_to_dict().keys(), only_empties=True)
        self.check_if_z_is_correct(traj)

        newtraj = self.load_trajectory(trajectory_name=self.traj.v_name,
                                       as_new=False)
        self.traj.f_load_skeleton()
        self.traj.f_load_items(self.traj.f_to_dict().keys(), only_empties=True)

        self.compare_trajectories(self.traj, newtraj)
コード例 #2
0
ファイル: environment_test.py プロジェクト: MehmetTimur/pypet
    def test_expand_after_reload(self):
        ###Explore
        self.explore(self.traj)

        results = self.env.f_run(multiply)
        self.are_results_in_order(results)

        traj = self.traj
        self.assertTrue(len(traj) == len(compat.listvalues(self.explore_dict)[0]))

        self.traj.f_load_skeleton()
        self.traj.f_load_items(self.traj.f_to_dict().keys(), only_empties=True)
        self.check_if_z_is_correct(traj)

        self.expand(self.traj)

        self.env.f_run(multiply)
        traj = self.traj
        self.assertTrue(len(traj) == len(compat.listvalues(self.expand_dict)[0])+\
                        len(compat.listvalues(self.explore_dict)[0]))

        self.traj.f_load_skeleton()
        self.traj.f_load_items(self.traj.f_to_dict().keys(), only_empties=True)
        self.check_if_z_is_correct(traj)

        newtraj = self.load_trajectory(trajectory_name=self.traj.v_name,as_new=False)
        self.traj.f_load_skeleton()
        self.traj.f_load_items(self.traj.f_to_dict().keys(), only_empties=True)

        self.compare_trajectories(self.traj,newtraj)
コード例 #3
0
    def test_f_iter_runs(self):

         ###Explore
        self.explore(self.traj)


        self.env.f_run(multiply)
        traj = self.traj
        self.assertTrue(len(traj) == len(compat.listvalues(self.explore_dict)[0]))

        self.traj.f_load_skeleton()
        self.traj.f_load_items(self.traj.f_to_dict().keys(), only_empties=True)
        self.check_if_z_is_correct(traj)

        newtraj = self.load_trajectory(trajectory_name=self.traj.v_name,as_new=False)
        self.traj.f_load_skeleton()
        self.traj.f_load_items(self.traj.f_to_dict().keys(), only_empties=True)

        for idx, run_name in enumerate(self.traj.f_iter_runs()):
            newtraj.v_as_run=run_name
            self.traj.v_as_run == run_name
            self.traj.v_idx = idx
            newtraj.v_idx = idx
            nameset = set((x.v_name for x in traj.f_iter_nodes(predicate=(idx,))))
            self.assertTrue('run_%08d' % (idx+1) not in nameset)
            self.assertTrue('run_%08d' % idx in nameset)
            self.assertTrue(traj.v_crun == run_name)
            self.assertTrue(newtraj.crun.z==traj.x*traj.y,' z != x*y: %s != %s * %s' %
                                                  (str(newtraj.crun.z),str(traj.x),str(traj.y)))

        self.assertTrue(traj.v_idx == -1)
        self.assertTrue(traj.v_crun is None)
        self.assertTrue(traj.v_crun_ == pypetconstants.RUN_NAME_DUMMY)
        self.assertTrue(newtraj.v_idx == idx)
コード例 #4
0
ファイル: environment_test.py プロジェクト: MehmetTimur/pypet
    def test_if_results_are_sorted_correctly_using_map(self):
        ###Explore
        self.explore(self.traj)

        args1=[10*x for x in range(len(self.traj))]
        args2=[100*x for x in range(len(self.traj))]
        args3=list(range(len(self.traj)))

        results = self.env.f_run_map(multiply_args, args1, arg2=args2, arg3=args3)
        self.assertEqual(len(results), len(self.traj))

        traj = self.traj
        self.assertTrue(len(traj) == len(compat.listvalues(self.explore_dict)[0]))

        self.traj.f_load_skeleton()
        self.traj.f_load_items(self.traj.f_to_dict().keys(), only_empties=True)
        self.check_if_z_is_correct_map(traj, args1, args2, args3)

        for res in results:
            self.assertEqual(len(res), 2)
            self.assertTrue(isinstance(res[0], int))
            self.assertTrue(isinstance(res[1], int))
            idx = res[0]
            self.assertEqual(self.traj.res.runs[idx].z, res[1])

        newtraj = self.load_trajectory(trajectory_name=self.traj.v_name,as_new=False)
        self.traj.f_load_skeleton()
        self.traj.f_load_items(self.traj.f_to_dict().keys(), only_empties=True)

        self.assertEqual(len(traj), 5)
        self.compare_trajectories(self.traj,newtraj)
コード例 #5
0
ファイル: environment_test.py プロジェクト: MisterFXGuy/pypet
    def test_if_results_are_sorted_correctly_using_map(self):
        ###Explore
        self.explore(self.traj)

        args1=[10*x for x in range(len(self.traj))]
        args2=[100*x for x in range(len(self.traj))]
        args3=list(range(len(self.traj)))

        results = self.env.f_run_map(multiply_args, args1, arg2=args2, arg3=args3)
        self.assertEqual(len(results), len(self.traj))

        traj = self.traj
        self.assertTrue(len(traj) == len(compat.listvalues(self.explore_dict)[0]))

        self.traj.f_load_skeleton()
        self.traj.f_load_items(self.traj.f_to_dict().keys(), only_empties=True)
        self.check_if_z_is_correct_map(traj, args1, args2, args3)

        for res in results:
            self.assertEqual(len(res), 2)
            self.assertTrue(isinstance(res[0], int))
            self.assertTrue(isinstance(res[1], int))
            idx = res[0]
            self.assertEqual(self.traj.res.runs[idx].z, res[1])

        newtraj = self.load_trajectory(trajectory_name=self.traj.v_name,as_new=False)
        self.traj.f_load_skeleton()
        self.traj.f_load_items(self.traj.f_to_dict().keys(), only_empties=True)

        self.assertEqual(len(traj), 5)
        self.compare_trajectories(self.traj,newtraj)
コード例 #6
0
    def test_if_results_are_sorted_correctly(self):

        ###Explore
        self.explore(self.traj)

        results = self.env.f_run(multiply)
        self.are_results_in_order(results)
        self.assertEqual(len(results), len(self.traj))

        traj = self.traj
        self.assertTrue(
            len(traj) == len(compat.listvalues(self.explore_dict)[0]))

        self.traj.f_load_skeleton()
        self.traj.f_load_items(self.traj.f_to_dict().keys(), only_empties=True)
        self.check_if_z_is_correct(traj)

        for res in results:
            self.assertEqual(len(res), 2)
            self.assertTrue(isinstance(res[0], int))
            self.assertTrue(isinstance(res[1], int))
            idx = res[0]
            self.assertEqual(self.traj.res.runs[idx].z, res[1])

        newtraj = self.load_trajectory(trajectory_name=self.traj.v_name,
                                       as_new=False)
        self.traj.f_load_skeleton()
        self.traj.f_load_items(self.traj.f_to_dict().keys(), only_empties=True)

        self.compare_trajectories(self.traj, newtraj)
コード例 #7
0
ファイル: environment_test.py プロジェクト: MehmetTimur/pypet
    def test_if_results_are_sorted_correctly(self):

        ###Explore
        self.explore(self.traj)

        results = self.env.f_run(multiply)
        self.are_results_in_order(results)
        self.assertEqual(len(results), len(self.traj))


        traj = self.traj
        self.assertTrue(len(traj) == len(compat.listvalues(self.explore_dict)[0]))

        self.traj.f_load_skeleton()
        self.traj.f_load_items(self.traj.f_to_dict().keys(), only_empties=True)
        self.check_if_z_is_correct(traj)

        for res in results:
            self.assertEqual(len(res), 2)
            self.assertTrue(isinstance(res[0], int))
            self.assertTrue(isinstance(res[1], int))
            idx = res[0]
            self.assertEqual(self.traj.res.runs[idx].z, res[1])

        newtraj = self.load_trajectory(trajectory_name=self.traj.v_name,as_new=False)
        self.traj.f_load_skeleton()
        self.traj.f_load_items(self.traj.f_to_dict().keys(), only_empties=True)

        self.compare_trajectories(self.traj,newtraj)
コード例 #8
0
ファイル: hdf5_storage_test.py プロジェクト: lsolanka/pypet
    def test_f_iter_runs(self):

         ###Explore
        self.explore(self.traj)


        self.env.f_run(multiply)
        traj = self.traj
        self.assertTrue(len(traj) == len(compat.listvalues(self.explore_dict)[0]))

        self.traj.f_update_skeleton()
        self.traj.f_load_items(self.traj.f_to_dict().keys(), only_empties=True)
        self.check_if_z_is_correct(traj)

        newtraj = self.load_trajectory(trajectory_name=self.traj.v_name,as_new=False)
        self.traj.f_update_skeleton()
        self.traj.f_load_items(self.traj.f_to_dict().keys(), only_empties=True)

        for idx, run_name in enumerate(self.traj.f_iter_runs()):
            newtraj.v_as_run=run_name
            self.traj.v_as_run == run_name
            self.traj.v_idx = idx
            newtraj.v_idx = idx

            self.assertTrue('run_%08d' % (idx+1) not in traj)

            self.assertTrue(newtraj.z==traj.x*traj.y,' z != x*y: %s != %s * %s' %
                                                  (str(newtraj.z),str(traj.x),str(traj.y)))

        self.assertTrue(traj.v_idx == -1)
        self.assertTrue(traj.v_as_run == 'run_ALL')
        self.assertTrue(newtraj.v_idx == idx)
コード例 #9
0
    def test_expand(self):
        ###Explore
        self.explore(self.traj)

        results = self.env.f_run(multiply)
        self.are_results_in_order(results)

        get_root_logger().info(results)
        traj = self.traj
        self.assertEqual(len(traj),
                         len(list(compat.listvalues(self.explore_dict)[0])))

        self.traj.f_load_skeleton()
        self.traj.f_load_items(self.traj.f_to_dict().keys(), only_empties=True)
        self.check_if_z_is_correct(traj)

        traj_name = self.env.v_trajectory.v_name
        del self.env
        self.env = Environment(trajectory=self.traj,
                               log_stdout=False,
                               log_config=get_log_config())

        self.traj = self.env.v_trajectory

        self.traj.f_load(name=traj_name)

        self.expand(self.traj)

        results = self.env.f_run(multiply)
        self.are_results_in_order(results)

        traj = self.traj
        self.assertTrue(
            len(traj) == len(compat.listvalues(self.expand_dict)[0]) +
            len(compat.listvalues(self.explore_dict)[0]))

        self.traj.f_load_skeleton()
        self.traj.f_load_items(self.traj.f_to_dict().keys(), only_empties=True)
        self.check_if_z_is_correct(traj)

        newtraj = self.load_trajectory(trajectory_name=self.traj.v_name,
                                       as_new=False)
        self.traj.f_load_skeleton()
        self.traj.f_load_items(self.traj.f_to_dict().keys(), only_empties=True)

        self.compare_trajectories(self.traj, newtraj)
コード例 #10
0
ファイル: environment_test.py プロジェクト: MehmetTimur/pypet
    def test_expand(self):
        ###Explore
        self.explore(self.traj)

        results = self.env.f_run(multiply)
        self.are_results_in_order(results)

        get_root_logger().info(results)
        traj = self.traj
        self.assertEqual(len(traj), len(list(compat.listvalues(self.explore_dict)[0])))

        self.traj.f_load_skeleton()
        self.traj.f_load_items(self.traj.f_to_dict().keys(), only_empties=True)
        self.check_if_z_is_correct(traj)

        traj_name = self.env.v_trajectory.v_name
        del self.env
        self.env = Environment(trajectory=self.traj,
                          log_stdout=False,
                          log_config=get_log_config())

        self.traj = self.env.v_trajectory

        self.traj.f_load(name=traj_name)

        self.expand(self.traj)

        results = self.env.f_run(multiply)
        self.are_results_in_order(results)

        traj = self.traj
        self.assertTrue(len(traj) == len(compat.listvalues(self.expand_dict)[0])+ len(compat.listvalues(self.explore_dict)[0]))


        self.traj.f_load_skeleton()
        self.traj.f_load_items(self.traj.f_to_dict().keys(), only_empties=True)
        self.check_if_z_is_correct(traj)

        newtraj = self.load_trajectory(trajectory_name=self.traj.v_name,as_new=False)
        self.traj.f_load_skeleton()
        self.traj.f_load_items(self.traj.f_to_dict().keys(), only_empties=True)

        self.compare_trajectories(self.traj,newtraj)
コード例 #11
0
ファイル: parameter_test.py プロジェクト: MehmetTimur/pypet
    def make_results(self):
        self.results= {}
        self.results['test.res.on_constructor']=self.Constructor('test.res.on_constructor',
                                                                  protocol=0, **self.data)
        self.results['test.res.args']=self.Constructor('test.res.args')
        self.results['test.res.args'].v_protocol=1

        self.results['test.res.kwargs']=self.Constructor('test.res.kwargs', protocol=2)

        self.results['test.res.args'].f_set(*compat.listvalues(self.data))
        self.results['test.res.kwargs'].f_set(**self.data)
コード例 #12
0
    def make_results(self):
        self.results= {}
        self.results['test.res.on_constructor']=self.Constructor('test.res.on_constructor',
                                                                  protocol=0, **self.data)
        self.results['test.res.args']=self.Constructor('test.res.args')
        self.results['test.res.args'].v_protocol=1

        self.results['test.res.kwargs']=self.Constructor('test.res.kwargs', protocol=2)

        self.results['test.res.args'].f_set(*compat.listvalues(self.data))
        self.results['test.res.kwargs'].f_set(**self.data)
コード例 #13
0
ファイル: data.py プロジェクト: henribunting/pypet
 def clear_handlers(self):
     """Deletes all handlers and closes all log-files"""
     root = logging.getLogger()
     for logger in compat.listvalues(root.manager.loggerDict) + [root]:
         if hasattr(logger, 'handlers'):
             handlers = logger.handlers
             for handler in handlers:
                 if hasattr(handler, 'flush'):
                     handler.flush()
                 if hasattr(handler, 'close'):
                     handler.close()
             logger.handlers = []
コード例 #14
0
ファイル: parameter_test.py プロジェクト: henribunting/pypet
    def make_results(self):
        self.results= {}
        self.results['test.res.on_constructor']=self.Constructor('test.res.on_constructor',**self.data)
        self.results['test.res.args']=self.Constructor('test.res.args')
        self.results['test.res.kwargs']=self.Constructor('test.res.kwargs')
        self.results['test.res.setitem']=self.Constructor('test.res.setitem')

        self.results['test.res.args'].f_set(*compat.listvalues(self.data))
        self.results['test.res.kwargs'].f_set(**self.data)

        for key, value in self.data.items():
            self.results['test.res.setitem'][key]=value
コード例 #15
0
    def make_results(self):
        self.results= {}
        self.results['test.res.on_constructor']=self.Constructor('test.res.on_constructor',
                                                                 **self.data)
        self.results['test.res.args']=self.Constructor('test.res.args')
        self.results['test.res.kwargs']=self.Constructor('test.res.kwargs')
        self.results['test.res.setitem']=self.Constructor('test.res.setitem')

        self.results['test.res.args'].f_set(*compat.listvalues(self.data))
        self.results['test.res.kwargs'].f_set(**self.data)

        for key, value in self.data.items():
            self.results['test.res.setitem'][key]=value
コード例 #16
0
ファイル: hdf5_storage_test.py プロジェクト: lsolanka/pypet
    def test_expand(self):
        ###Explore
        self.explore(self.traj)

        print(self.env.f_run(multiply))
        traj = self.traj
        self.assertTrue(len(traj) == len(list(compat.listvalues(self.explore_dict)[0])))

        self.traj.f_update_skeleton()
        self.traj.f_load_items(self.traj.f_to_dict().keys(), only_empties=True)
        self.check_if_z_is_correct(traj)

        traj_name = self.env.v_trajectory.v_name
        del self.env
        self.env = Environment(trajectory=self.traj,filename=self.filename,
                          file_title=self.trajname, log_folder=self.logfolder,
                          log_stdout=False)

        self.traj = self.env.v_trajectory

        self.traj.f_load(name=traj_name)

        self.expand(self.traj)

        self.env.f_run(multiply)
        traj = self.traj
        self.assertTrue(len(traj) == len(compat.listvalues(self.expand_dict)[0])+ len(compat.listvalues(self.explore_dict)[0]))


        self.traj.f_update_skeleton()
        self.traj.f_load_items(self.traj.f_to_dict().keys(), only_empties=True)
        self.check_if_z_is_correct(traj)

        newtraj = self.load_trajectory(trajectory_name=self.traj.v_name,as_new=False)
        self.traj.f_update_skeleton()
        self.traj.f_load_items(self.traj.f_to_dict().keys(), only_empties=True)

        self.compare_trajectories(self.traj,newtraj)
コード例 #17
0
 def clear_handlers(self):
     """Deletes all handlers and closes all log-files"""
     root = logging.getLogger()
     for logger in compat.listvalues(root.manager.loggerDict) + [root]:
         if hasattr(logger, 'handlers'):
             handlers = logger.handlers
             for handler in handlers:
                 if hasattr(handler, 'flush'):
                     handler.flush()
                 if hasattr(handler, 'close'):
                     handler.close()
             logger.handlers = []
     sys.stdout = sys.__stdout__
     sys.stderr = sys.__stderr__
コード例 #18
0
ファイル: hdf5_storage_test.py プロジェクト: lsolanka/pypet
    def test_if_results_are_sorted_correctly(self):

        ###Explore
        self.explore(self.traj)


        self.env.f_run(multiply)
        traj = self.traj
        self.assertTrue(len(traj) == len(compat.listvalues(self.explore_dict)[0]))

        self.traj.f_update_skeleton()
        self.traj.f_load_items(self.traj.f_to_dict().keys(), only_empties=True)
        self.check_if_z_is_correct(traj)

        newtraj = self.load_trajectory(trajectory_name=self.traj.v_name,as_new=False)
        self.traj.f_update_skeleton()
        self.traj.f_load_items(self.traj.f_to_dict().keys(), only_empties=True)

        self.compare_trajectories(self.traj,newtraj)
コード例 #19
0
    def test_if_full_copy_is_old_value(self):

        ###Explore
        self.explore(self.traj)

        self.traj.v_full_copy = False

        self.env.f_run(new_multiply)
        traj = self.traj
        self.assertTrue(len(traj) == len(compat.listvalues(self.explore_dict)[0]))

        self.traj.f_load_skeleton()
        self.traj.f_load_items(self.traj.f_to_dict().keys(), only_empties=True)
        self.check_if_z_is_correct(traj)

        newtraj = self.load_trajectory(trajectory_name=self.traj.v_name,as_new=False)
        self.traj.f_load_skeleton()
        self.traj.f_load_items(self.traj.f_to_dict().keys(), only_empties=True)

        self.compare_trajectories(self.traj,newtraj)
コード例 #20
0
ファイル: environment_test.py プロジェクト: MisterFXGuy/pypet
    def test_if_results_are_sorted_correctly_manual_runs(self):
        ###Explore
        self.explore(self.traj)
        self.traj.f_store(only_init=True)
        man_multiply = manual_run()(multiply_with_storing)
        for idx in self.traj.f_iter_runs(yields='idx'):
            self.assertTrue(isinstance(idx, int))
            man_multiply(self.traj)
        traj = self.traj
        traj.f_store()
        self.assertTrue(len(traj), 5)
        self.assertTrue(len(traj) == len(compat.listvalues(self.explore_dict)[0]))

        self.traj.f_load_skeleton()
        self.traj.f_load_items(self.traj.f_to_dict().keys(), only_empties=True)
        self.check_if_z_is_correct(traj)

        newtraj = self.load_trajectory(trajectory_name=self.traj.v_name,as_new=False)
        self.traj.f_load_skeleton()
        self.traj.f_load_items(self.traj.f_to_dict().keys(), only_empties=True)

        self.compare_trajectories(self.traj,newtraj)
コード例 #21
0
ファイル: environment_test.py プロジェクト: MehmetTimur/pypet
    def test_if_results_are_sorted_correctly_manual_runs(self):
        ###Explore
        self.explore(self.traj)
        self.traj.f_store(only_init=True)
        man_multiply = manual_run()(multiply_with_storing)
        for idx in self.traj.f_iter_runs(yields='idx'):
            self.assertTrue(isinstance(idx, int))
            man_multiply(self.traj)
        traj = self.traj
        traj.f_store()
        self.assertTrue(len(traj), 5)
        self.assertTrue(len(traj) == len(compat.listvalues(self.explore_dict)[0]))

        self.traj.f_load_skeleton()
        self.traj.f_load_items(self.traj.f_to_dict().keys(), only_empties=True)
        self.check_if_z_is_correct(traj)

        newtraj = self.load_trajectory(trajectory_name=self.traj.v_name,as_new=False)
        self.traj.f_load_skeleton()
        self.traj.f_load_items(self.traj.f_to_dict().keys(), only_empties=True)

        self.compare_trajectories(self.traj,newtraj)
コード例 #22
0
ファイル: environment_test.py プロジェクト: MisterFXGuy/pypet
    def test_f_iter_runs_auto_load(self):

         ###Explore
        self.explore(self.traj)

        results = self.env.f_run(multiply)
        self.are_results_in_order(results)
        traj = self.traj
        self.assertTrue(len(traj) == len(compat.listvalues(self.explore_dict)[0]))

        self.traj.f_load_skeleton()
        self.traj.f_load_items(self.traj.f_to_dict().keys(), only_empties=True)
        self.check_if_z_is_correct(traj)

        newtraj = Trajectory()
        newtraj.v_storage_service=HDF5StorageService(filename=self.filename)
        newtraj.f_load(name=self.traj.v_name, index=None, as_new=False, load_data=0)
        newtraj.v_auto_load = True

        newtraj.par.f_load_child('y', load_data=1)

        for idx, run_name in enumerate(self.traj.f_iter_runs()):
            newtraj.v_crun=run_name
            self.traj.v_idx = idx
            newtraj.v_idx = idx
            nameset = set((x.v_name for x in traj.f_iter_nodes(predicate=(idx,))))
            self.assertTrue('run_%08d' % (idx+1) not in nameset)
            self.assertTrue('run_%08d' % idx in nameset)
            self.assertTrue(traj.v_crun == run_name)
            self.assertTrue(newtraj.res.runs.crun.z==newtraj.par.x*newtraj.par.y,' z != x*y: %s != %s * %s' %
                                                  (str(newtraj.crun.z),str(newtraj.x),str(newtraj.y)))


        traj = self.traj
        self.assertTrue(traj.v_idx == -1)
        self.assertTrue(traj.v_crun is None)
        self.assertTrue(traj.v_crun_ == pypetconstants.RUN_NAME_DUMMY)
        self.assertTrue(newtraj.v_idx == idx)
コード例 #23
0
    def test_f_iter_runs(self):

        ###Explore
        self.explore(self.traj)

        results = self.env.f_run(multiply)
        self.are_results_in_order(results)
        traj = self.traj
        self.assertTrue(
            len(traj) == len(compat.listvalues(self.explore_dict)[0]))

        self.traj.f_load_skeleton()
        self.traj.f_load_items(self.traj.f_to_dict().keys(), only_empties=True)
        self.check_if_z_is_correct(traj)

        newtraj = self.load_trajectory(trajectory_name=self.traj.v_name,
                                       as_new=False)
        self.traj.f_load_skeleton()
        self.traj.f_load_items(self.traj.f_to_dict().keys(), only_empties=True)

        for idx, run_name in enumerate(self.traj.f_iter_runs()):
            newtraj.v_crun = run_name
            self.traj.v_idx = idx
            newtraj.v_idx = idx
            nameset = set(
                (x.v_name for x in traj.f_iter_nodes(predicate=(idx, ))))
            self.assertTrue('run_%08d' % (idx + 1) not in nameset)
            self.assertTrue('run_%08d' % idx in nameset)
            self.assertTrue(traj.v_crun == run_name)
            self.assertTrue(
                newtraj.crun.z == traj.x * traj.y, ' z != x*y: %s != %s * %s' %
                (str(newtraj.crun.z), str(traj.x), str(traj.y)))

        for idx, traj in enumerate(self.traj.f_iter_runs(yields='self')):
            run_name = traj.f_idx_to_run(idx)
            self.assertTrue(traj is self.traj)
            newtraj.v_crun = run_name
            self.traj.v_idx = idx
            newtraj.v_idx = idx
            nameset = set(
                (x.v_name for x in traj.f_iter_nodes(predicate=(idx, ))))
            self.assertTrue('run_%08d' % (idx + 1) not in nameset)
            self.assertTrue('run_%08d' % idx in nameset)
            self.assertTrue(traj.v_crun == run_name)
            self.assertTrue(
                newtraj.crun.z == traj.x * traj.y, ' z != x*y: %s != %s * %s' %
                (str(newtraj.crun.z), str(traj.x), str(traj.y)))

        for idx, traj in enumerate(self.traj.f_iter_runs(yields='copy')):
            run_name = traj.f_idx_to_run(idx)
            self.assertTrue(traj is not self.traj)
            newtraj.v_crun = run_name
            self.traj.v_idx = idx
            newtraj.v_idx = idx
            nameset = set(
                (x.v_name for x in traj.f_iter_nodes(predicate=(idx, ))))
            self.assertTrue('run_%08d' % (idx + 1) not in nameset)
            self.assertTrue('run_%08d' % idx in nameset)
            self.assertTrue(traj.v_crun == run_name)
            self.assertTrue(
                newtraj.crun.z == traj.x * traj.y, ' z != x*y: %s != %s * %s' %
                (str(newtraj.crun.z), str(traj.x), str(traj.y)))

        traj = self.traj
        self.assertTrue(traj.v_idx == -1)
        self.assertTrue(traj.v_crun is None)
        self.assertTrue(traj.v_crun_ == pypetconstants.RUN_NAME_DUMMY)
        self.assertTrue(newtraj.v_idx == idx)