def test__subselect_by_dmetric():
    
    o_sampler = PyposmatFileSampler(
            config_fn=config_fn,
            data_in_fn=datafile_in_fn,
            data_out_fn=datafile_out_fn
            )
    o_sampler.create_base_directories()
    o_sampler.read_configuration_file()
    o_sampler.configure_qoi_manager(use_fitting_qois=False,use_testing_qois=True)
    o_sampler.configure_task_manager()
    o_sampler.configure_datafile_out()
    o_sampler.subselect_by_dmetric(nsmallest=n_smallest)
    
    import pandas as pd
    assert type(o_sampler.subselect_df) is pd.DataFrame
    check_reference_potentials(o_sampler=o_sampler)

    o_sampler.create_base_directories()
    o_sampler.read_configuration_file()
    
    # Determine which QOIS you want to calculate
    # calculate only the fitting qois
    #o_sampler.configure_qoi_manager(use_fitting_qois=True,use_testing_qois=False)
    # Calculate only the testing qois
    o_sampler.configure_qoi_manager(use_fitting_qois=False,use_testing_qois=True)
    # Calculate all qois
    #o_sampler.configure_qoi_manager(use_fitting_qois=True,use_testing_qois=True)

    print_qoi_database(o_sampler=o_sampler)
    print_qoi_manager(o_sampler=o_sampler)
    
    o_sampler.configure_task_manager()
    print_task_manager(o_sampler=o_sampler)
    

    o_sampler.configure_datafile_out()
    o_sampler.subselect_by_dmetric(nsmallest=n_smallest)
   
    # these have been tested to work
    #o_sampler._sample_from_subselect_df()
    #o_sampler._sample_from_reference_potentials() 
   
    o_sampler.run_simulations()
    
    exit()