"""
Identifier:     mci_sim/tests/test_mci_sim.py
Name:           test_mci_sim.py
Description:    Test mci sim.
Author:         Zhaojun Yan
Created:        2024-04-09
Modified-History:
    2024-04-09, Zhaojun Yan, created

"""

import unittest
import os
from csst_mci_sim import csst_mci_sim

import sys


import faulthandler

class TestDemoFunction(unittest.TestCase):
    def test_mci_sim_1(self):
        
        """
        Aim
        ---
        Test mci sim function: EXDF case.

        Criteria
        --------
        Pass if the demo function returns `1`.

        Details
        -------
        The demo function returns the length of the input argument list.
        This case aims to test whether the demo function returns `1` if input is `None`.
        """
        faulthandler.enable()
        
        # demo function test
        dir_path = os.path.join(os.environ['UNIT_TEST_DATA_ROOT'],'mci_sim/')
        print(dir_path)
 
# 获取当前工作目录
        current_path = os.getcwd()
         
        print("当前路径:", current_path)
        
        configfile = dir_path+'MCI_inputData/configData/mci_all_9K.config'
      
        sourcein = 'EXDF'
        print(configfile)
                
        csst_mci_sim.runMCIsim(sourcein,  configfile, dir_path, 1)
        
        self.assertEqual(
            1 , 1,
            "case 1: SCI sim passes.",
        )
        
        
    # def test_ifs_sim_2(self):
    #     """
    #     Aim
    #     ---
    #     Test ifs sim function: BIAS case.

    #     Criteria
    #     --------
    #     Pass if the demo function returns `1`.

    #     Details
    #     -------
    #     The demo function returns the length of the input argument list.
    #     This case aims to test whether the demo function returns `1` if input is `None`.
    #     """
    #     # demo function test
    #     dir_path=os.path.join(os.environ['UNIT_TEST_DATA_ROOT'],'ifs_sim')
        
    #     csst_ifs_sim(dir_path,BIAS)
        
    #     self.assertTrue(
    #         1 == 1,
    #         "case 2 :BIAS sim passes.",
    #     )
        
    # def test_ifs_sim_3(self):
    #     """
    #     Aim
    #     ---
    #     Test ifs sim function: DARK case.

    #     Criteria
    #     --------
    #     Pass if the demo function returns `1`.

    #     Details
    #     -------
    #     The demo function returns the length of the input argument list.
    #     This case aims to test whether the demo function returns `1` if input is `None`.
    #     """
    #     # demo function test
    #     dir_path=os.path.join(os.environ['UNIT_TEST_DATA_ROOT'],'ifs_sim')
        
    #     csst_ifs_sim(dir_path,'DARK')
        
    #     self.assertTrue(
    #         1 == 1,
    #         "case 3 :DARK sim passes.",
    #     )
        
        
        
    # def test_ifs_sim_4(self):
    #     """
    #     Aim
    #     ---
    #     Test ifs sim function: LAMP case.

    #     Criteria
    #     --------
    #     Pass if the demo function returns `1`.

    #     Details
    #     -------
    #     The demo function returns the length of the input argument list.
    #     This case aims to test whether the demo function returns `1` if input is `None`.
    #     """
    #     # demo function test
    #     dir_path=os.path.join(os.environ['UNIT_TEST_DATA_ROOT'],'ifs_sim')
        
    #     csst_ifs_sim(dir_path,'LAMP')
        
    #     self.assertTrue(
    #         1 == 1,
    #         "case 4 :LAMP sim passes.",
    #     )
        
        
        
    # def test_ifs_sim_5(self):
    #     """
    #     Aim
    #     ---
    #     Test ifs sim function: FLAT case.

    #     Criteria
    #     --------
    #     Pass if the demo function returns `1`.

    #     Details
    #     -------
    #     The demo function returns the length of the input argument list.
    #     This case aims to test whether the demo function returns `1` if input is `None`.
    #     """
    #     # demo function test
    #     dir_path=os.path.join(os.environ['UNIT_TEST_DATA_ROOT'],'ifs_sim')
        
    #     csst_ifs_sim(dir_path,'FLAT')
        
    #     self.assertTrue(
    #         1 == 1,
    #         "case 5 :FLAT sim passes.",
    #     )
        
        
    # def test_ifs_sim_6(self):
    #     """
    #     Aim
    #     ---
    #     Test ifs sim function: hole case.
    
    #     Criteria
    #     --------
    #     Pass if the demo function returns `1`.
    
    #     Details
    #     -------
    #     The demo function returns the length of the input argument list.
    #     This case aims to test whether the demo function returns `1` if input is `None`.
    #     """
    #     # demo function test
    #     dir_path=os.path.join(os.environ['UNIT_TEST_DATA_ROOT'],'ifs_sim')
        
    #     csst_ifs_sim(dir_path,'LAMP', 'yes')
        
    #     self.assertTrue(
    #         1 == 1,
    #         "case 6 :Hole sim passes.",
    #     )
        
      