Skip to content
test_spec1d.py 16.3 KiB
Newer Older
Shuai Feng's avatar
Shuai Feng committed
import sys
import unittest
from csst_ifs_gehong import spec1d as s
from csst_ifs_gehong import config as c
Shuai Feng's avatar
Shuai Feng committed
import numpy as np
import matplotlib.pyplot as plt
import warnings
warnings.simplefilter("ignore", ResourceWarning)
Shuai Feng's avatar
Shuai Feng committed
sys.path.insert(0, '..')

Shuai Feng's avatar
Shuai Feng committed

class test_spec1d(unittest.TestCase):

    """
    Test modules in spec1d.py
    """

    def test_StellarPop(self):

Shuai Feng's avatar
Shuai Feng committed

        print("=================================================================")
        print("==================Stellar Population Modelling===================")
        print(" ")
        print(">>> Start Test")
        print(" ")

        temp = s.StellarContinuumTemplate(inst)

Shuai Feng's avatar
Shuai Feng committed
        plt.figure(figsize=(15, 12))
Shuai Feng's avatar
Shuai Feng committed

        print("------------------------Test Magnitude---------------------------")
        print("1. mr=15")
Shuai Feng's avatar
Shuai Feng committed
        sed1 = s.StellarContinuum(inst, temp, mag=15, age=1, feh=0, vel=100, vdisp=100, ebv=0)
Shuai Feng's avatar
Shuai Feng committed
        print("2. mr=13")
Shuai Feng's avatar
Shuai Feng committed
        sed2 = s.StellarContinuum(inst, temp, mag=13, age=1, feh=0, vel=100, vdisp=100, ebv=0)
Shuai Feng's avatar
Shuai Feng committed
        if np.sum(sed1.flux) != np.sum(sed2.flux):
            print("No Problem!")
            plt.subplot(231)
Shuai Feng's avatar
Shuai Feng committed
            plt.plot(sed1.wave, sed1.flux, color='blue', lw=2, label='mr = 15')
            plt.plot(sed2.wave, sed2.flux, color='red', lw=2, label='mr = 13')
Shuai Feng's avatar
Shuai Feng committed
            plt.legend(frameon=False)
            plt.xlim(3900, 6200)
Shuai Feng's avatar
Shuai Feng committed

Shuai Feng's avatar
Shuai Feng committed
        print("---------------------------Test  Age-----------------------------")
        print("1. Age=0.1Gyr")
Shuai Feng's avatar
Shuai Feng committed
        sed1 = s.StellarContinuum(inst, temp, mag=15, age=0.1, feh=0, vel=100, vdisp=100, ebv=0)
Shuai Feng's avatar
Shuai Feng committed
        print("2. Age=1Gyr")
Shuai Feng's avatar
Shuai Feng committed
        sed2 = s.StellarContinuum(inst, temp, mag=15, age=1, feh=0, vel=100, vdisp=100, ebv=0)
Shuai Feng's avatar
Shuai Feng committed
        if np.sum(sed1.flux) != np.sum(sed2.flux):
            print("No Problem!")
            plt.subplot(232)
Shuai Feng's avatar
Shuai Feng committed
            plt.plot(sed1.wave, sed1.flux, color='blue', lw=2, label='Age = 0.1Gyr')
            plt.plot(sed2.wave, sed2.flux, color='red', lw=2, label='Age = 1Gyr')
Shuai Feng's avatar
Shuai Feng committed
            plt.legend(frameon=False)
            plt.xlim(3900, 6200)

        print("-----------------------Test  Metallicity-------------------------")
        print("1. [Fe/H]=0.5")
Shuai Feng's avatar
Shuai Feng committed
        sed1 = s.StellarContinuum(inst, temp, mag=15, age=1, feh=0.5, vel=100, vdisp=100, ebv=0)
Shuai Feng's avatar
Shuai Feng committed
        print("2. [Fe/H]=-0.5")
Shuai Feng's avatar
Shuai Feng committed
        sed2 = s.StellarContinuum(inst, temp, mag=15, age=1, feh=-0.5, vel=100, vdisp=100, ebv=0)
Shuai Feng's avatar
Shuai Feng committed
        if np.sum(sed1.flux) != np.sum(sed2.flux):
            print("No Problem!")
            plt.subplot(233)
Shuai Feng's avatar
Shuai Feng committed
            plt.plot(sed1.wave, sed1.flux, color='blue', lw=2, label='[Fe/H] = 0.5')
            plt.plot(sed2.wave, sed2.flux, color='red', lw=2, label='[Fe/H] = -0.5')
Shuai Feng's avatar
Shuai Feng committed
            plt.legend(frameon=False)
            plt.xlim(3900, 6200)
Shuai Feng's avatar
Shuai Feng committed

Shuai Feng's avatar
Shuai Feng committed
        print("------------------------Test  Velocity---------------------------")
        print("1. v=3000km/s")
Shuai Feng's avatar
Shuai Feng committed
        sed1 = s.StellarContinuum(inst, temp, mag=15, age=1, feh=0, vel=3000, vdisp=100, ebv=0)
Shuai Feng's avatar
Shuai Feng committed
        print("2. v=6000km/s")
Shuai Feng's avatar
Shuai Feng committed
        sed2 = s.StellarContinuum(inst, temp, mag=15, age=1, feh=0, vel=6000, vdisp=100, ebv=0)
Shuai Feng's avatar
Shuai Feng committed
        if np.sum(sed1.flux) != np.sum(sed2.flux):
            print("No Problem!")
            plt.subplot(234)
Shuai Feng's avatar
Shuai Feng committed
            plt.plot(sed1.wave, sed1.flux, color='blue', lw=2, label='v = 3000km/s')
            plt.plot(sed2.wave, sed2.flux, color='red', lw=2, label='v = 6000km/s')
Shuai Feng's avatar
Shuai Feng committed
            plt.legend(frameon=False)
            plt.xlim(3900, 6200)
Shuai Feng's avatar
Shuai Feng committed

Shuai Feng's avatar
Shuai Feng committed
        print("-------------------Test Velocity Dispersion----------------------")
        print("1. sigma=180km/s")
Shuai Feng's avatar
Shuai Feng committed
        sed1 = s.StellarContinuum(inst, temp, mag=15, age=1, feh=0.5, vel=100, vdisp=180, ebv=0)
Shuai Feng's avatar
Shuai Feng committed
        print("2. sigma=350km/s")
Shuai Feng's avatar
Shuai Feng committed
        sed2 = s.StellarContinuum(inst, temp, mag=15, age=1, feh=0.5, vel=100, vdisp=350, ebv=0)
Shuai Feng's avatar
Shuai Feng committed
        if np.sum(sed1.flux) != np.sum(sed2.flux):
            print("No Problem!")
            plt.subplot(235)
Shuai Feng's avatar
Shuai Feng committed
            plt.plot(sed1.wave, sed1.flux, color='blue', lw=2, label='sigma = 180km/s')
            plt.plot(sed2.wave, sed2.flux, color='red', lw=2, label='sigma = 350km/s')
Shuai Feng's avatar
Shuai Feng committed
            plt.legend(frameon=False)
            plt.xlim(3900, 6200)

        print("----------------------Test Dust Extinction-----------------------")
        print("1. E(B-V)=0.1")
Shuai Feng's avatar
Shuai Feng committed
        sed1 = s.StellarContinuum(inst, temp, mag=15, age=1, feh=0.5, vel=100, vdisp=100, ebv=0.1)
Shuai Feng's avatar
Shuai Feng committed
        print("2. E(B-V)=0.3")
Shuai Feng's avatar
Shuai Feng committed
        sed2 = s.StellarContinuum(inst, temp, mag=15, age=1, feh=0.5, vel=100, vdisp=100, ebv=0.3)
Shuai Feng's avatar
Shuai Feng committed
        if np.sum(sed1.flux) != np.sum(sed2.flux):
            print("No Problem!")
            plt.subplot(236)
Shuai Feng's avatar
Shuai Feng committed
            plt.plot(sed1.wave, sed1.flux, color='blue', lw=2, label='E(B-V) = 0.1')
            plt.plot(sed2.wave, sed2.flux, color='red', lw=2, label='E(B-V) = 0.3')
Shuai Feng's avatar
Shuai Feng committed
            plt.legend(frameon=False)
            plt.xlim(3900, 6200)

        plt.tight_layout()
Shuai Feng's avatar
Shuai Feng committed
        # plt.savefig('./image/test_spec1d_stellarpopulation.png')

Shuai Feng's avatar
Shuai Feng committed
    def test_Star(self):

Shuai Feng's avatar
Shuai Feng committed

        print("================================================================")
        print("=================Single Star Spectra Modelling===================")
        print(" ")
        print(">>> Start Test")
        print(" ")

        temp = s.SingleStarTemplate(inst)

Shuai Feng's avatar
Shuai Feng committed
        plt.figure(figsize=(15, 12))
Shuai Feng's avatar
Shuai Feng committed

        print("------------------------Test Magnitude---------------------------")
        print("1. mr=15")
Shuai Feng's avatar
Shuai Feng committed
        sed1 = s.SingleStar(inst, temp, mag=15, teff=10000, feh=0, vel=100, ebv=0)
Shuai Feng's avatar
Shuai Feng committed
        print("2. mr=13")
Shuai Feng's avatar
Shuai Feng committed
        sed2 = s.SingleStar(inst, temp, mag=13, teff=10000, feh=0, vel=100, ebv=0)
Shuai Feng's avatar
Shuai Feng committed
        if np.sum(sed1.flux) != np.sum(sed2.flux):
            print("No Problem!")
            plt.subplot(221)
Shuai Feng's avatar
Shuai Feng committed
            plt.plot(sed1.wave, sed1.flux, color='blue', lw=2, label='mr = 15')
            plt.plot(sed2.wave, sed2.flux, color='red', lw=2, label='mr = 13')
Shuai Feng's avatar
Shuai Feng committed
            plt.legend(frameon=False)
            plt.xlim(3900, 6200)

        print("------------------------Test Tempreture--------------------------")
        print("1. Teff=6000K")
Shuai Feng's avatar
Shuai Feng committed
        sed1 = s.SingleStar(inst, temp, mag=15, teff=6000, feh=0, vel=100, ebv=0)
Shuai Feng's avatar
Shuai Feng committed
        print("1. Teff=10000K")
Shuai Feng's avatar
Shuai Feng committed
        sed2 = s.SingleStar(inst, temp, mag=15, teff=10000, feh=0, vel=100, ebv=0)
Shuai Feng's avatar
Shuai Feng committed
        if np.sum(sed1.flux) != np.sum(sed2.flux):
            print("No Problem!")
            plt.subplot(222)
Shuai Feng's avatar
Shuai Feng committed
            plt.plot(sed1.wave, sed1.flux, color='blue', lw=2, label='Teff = 6000K')
            plt.plot(sed2.wave, sed2.flux, color='red', lw=2, label='Teff = 10000K')
Shuai Feng's avatar
Shuai Feng committed
            plt.legend(frameon=False)
            plt.xlim(3900, 6200)

        print("-----------------------Test Metallicity--------------------------")
        print("1. [Fe/H]=-0.5")
Shuai Feng's avatar
Shuai Feng committed
        sed1 = s.SingleStar(inst, temp, mag=15, teff=10000, feh=-0.5, vel=100, ebv=0)
Shuai Feng's avatar
Shuai Feng committed
        print("2. [Fe/H]=0.5")
Shuai Feng's avatar
Shuai Feng committed
        sed2 = s.SingleStar(inst, temp, mag=15, teff=10000, feh=0.5, vel=100, ebv=0)
Shuai Feng's avatar
Shuai Feng committed
        if np.sum(sed1.flux) != np.sum(sed2.flux):
            print("No Problem!")
            plt.subplot(223)
Shuai Feng's avatar
Shuai Feng committed
            plt.plot(sed1.wave, sed1.flux, color='blue', lw=2, label='[Fe/H] = -0.5')
            plt.plot(sed2.wave, sed2.flux, color='red', lw=2, label='[Fe/H] = 0.5')
Shuai Feng's avatar
Shuai Feng committed
            plt.legend(frameon=False)
            plt.xlim(3900, 6200)

        print("------------------------Test  Velocity---------------------------")
        print("1. v=-200km/s")
Shuai Feng's avatar
Shuai Feng committed
        sed1 = s.SingleStar(inst, temp, mag=15, teff=10000, feh=0, vel=-200, ebv=0)
Shuai Feng's avatar
Shuai Feng committed
        print("2. v=200km/s")
Shuai Feng's avatar
Shuai Feng committed
        sed2 = s.SingleStar(inst, temp, mag=15, teff=10000, feh=0, vel=200, ebv=0)
Shuai Feng's avatar
Shuai Feng committed
        if np.sum(sed1.flux) != np.sum(sed2.flux):
            print("No Problem!")
            plt.subplot(224)
Shuai Feng's avatar
Shuai Feng committed
            plt.plot(sed1.wave, sed1.flux, color='blue', lw=2, label='v = -200km/s')
            plt.plot(sed2.wave, sed2.flux, color='red', lw=2, label='v = 200km/s')
Shuai Feng's avatar
Shuai Feng committed
            plt.legend(frameon=False)
            plt.xlim(3900, 6200)
Shuai Feng's avatar
Shuai Feng committed

Shuai Feng's avatar
Shuai Feng committed
        plt.tight_layout()
Shuai Feng's avatar
Shuai Feng committed
        # plt.savefig('./image/test_spec1d_singlestar.png')
Shuai Feng's avatar
Shuai Feng committed

        print("-----------------------------------------------------------------")
        print(">>> Unit test for **Single Stellar** Modelling has been passed!")

    def test_Gas(self):

Shuai Feng's avatar
Shuai Feng committed

        print("================================================================")
        print("======================Ionized Gas Modelling======================")
        print(" ")
        print(">>> Start Test")
        print(" ")

Shuai Feng's avatar
Shuai Feng committed
        temp = s.EmissionLineTemplate(inst, model='hii')
Shuai Feng's avatar
Shuai Feng committed

Shuai Feng's avatar
Shuai Feng committed
        plt.figure(figsize=(15, 12))
Shuai Feng's avatar
Shuai Feng committed

        print("---------------------Test Total Halpha Flux----------------------")

        print("1. F_Halpha = 10 * 1e-17 erg/s/cm^2")
Shuai Feng's avatar
Shuai Feng committed
        sed1 = s.HII_Region(inst, temp, halpha=10, logz=-1, vel=100, vdisp=120, ebv=0.1)
Shuai Feng's avatar
Shuai Feng committed
        print("2. F_Halpha = 50 * 1e-17 erg/s/cm^2")
Shuai Feng's avatar
Shuai Feng committed
        sed2 = s.HII_Region(inst, temp, halpha=50, logz=-1, vel=100, vdisp=120, ebv=0.1)
Shuai Feng's avatar
Shuai Feng committed
        if np.sum(sed1.flux) != np.sum(sed2.flux):
            print("No Problem!")
            plt.subplot(231)
Shuai Feng's avatar
Shuai Feng committed
            plt.plot(sed2.wave, sed2.flux, color='red', lw=2, label='Flux = 50')
            plt.plot(sed1.wave, sed1.flux, color='blue', lw=2, label='Flux = 10')
Shuai Feng's avatar
Shuai Feng committed
            plt.legend(frameon=False)
            plt.xlim(3900, 6200)

        print("-------------------Test Gas-Phase Metallicity--------------------")

        print("1. [Z/H] = 0")
Shuai Feng's avatar
Shuai Feng committed
        sed1 = s.HII_Region(inst, temp, halpha=10, logz=0, vel=100, vdisp=120, ebv=0.1)
Shuai Feng's avatar
Shuai Feng committed
        print("2. [Z/H] = -0.5")
Shuai Feng's avatar
Shuai Feng committed
        sed2 = s.HII_Region(inst, temp, halpha=10, logz=-0.5, vel=100, vdisp=120, ebv=0.1)
Shuai Feng's avatar
Shuai Feng committed
        if np.sum(sed1.flux) != np.sum(sed2.flux):
            print("No Problem!")
            plt.subplot(232)
Shuai Feng's avatar
Shuai Feng committed
            plt.plot(sed2.wave, sed2.flux, color='red', lw=2, label='[Z/H] = -0.5')
            plt.plot(sed1.wave, sed1.flux, color='blue', lw=2, label='[Z/H] = 0')
Shuai Feng's avatar
Shuai Feng committed
            plt.legend(frameon=False)
            plt.xlim(3900, 6200)

        print("-------------------------Test  Velocity--------------------------")

        print("1. v=3000km/s")
Shuai Feng's avatar
Shuai Feng committed
        sed1 = s.HII_Region(inst, temp, halpha=10, logz=-1, vel=3000, vdisp=120, ebv=0.1)
Shuai Feng's avatar
Shuai Feng committed
        print("2. v=6000km/s")
Shuai Feng's avatar
Shuai Feng committed
        sed2 = s.HII_Region(inst, temp, halpha=10, logz=-1, vel=6000, vdisp=120, ebv=0.1)
Shuai Feng's avatar
Shuai Feng committed
        if np.sum(sed1.flux) != np.sum(sed2.flux):
            print("No Problem!")
            plt.subplot(233)
Shuai Feng's avatar
Shuai Feng committed
            plt.plot(sed1.wave, sed1.flux, color='blue', lw=2, label='v = 3000km/s')
            plt.plot(sed2.wave, sed2.flux, color='red', lw=2, label='v = 6000km/s')
Shuai Feng's avatar
Shuai Feng committed
            plt.legend(frameon=False)
            plt.xlim(3900, 6200)

        print("--------------------Test Velocity Dispersion---------------------")

        print("1. sigma=500km/s")
Shuai Feng's avatar
Shuai Feng committed
        sed1 = s.HII_Region(inst, temp, halpha=10, logz=-1, vel=100, vdisp=500, ebv=0.1)
Shuai Feng's avatar
Shuai Feng committed
        print("2. sigma=100km/s")
Shuai Feng's avatar
Shuai Feng committed
        sed2 = s.HII_Region(inst, temp, halpha=10, logz=-1, vel=100, vdisp=100, ebv=0.1)
Shuai Feng's avatar
Shuai Feng committed
        if np.sum(sed1.flux) != np.sum(sed2.flux):
            print("No Problem!")
            plt.subplot(234)
Shuai Feng's avatar
Shuai Feng committed
            plt.plot(sed1.wave, sed1.flux, color='blue', lw=2, label='sigma = 500km/s')
            plt.plot(sed2.wave, sed2.flux, color='red', lw=2, label='sigma = 100km/s')
Shuai Feng's avatar
Shuai Feng committed
            plt.legend(frameon=False)
            plt.xlim(3900, 6200)

        print("----------------------Test Dust Extinction-----------------------")

        print("1. E(B-V)=0.1")
Shuai Feng's avatar
Shuai Feng committed
        sed1 = s.HII_Region(inst, temp, halpha=10, logz=-1, vel=100, vdisp=120, ebv=0.1)
Shuai Feng's avatar
Shuai Feng committed
        print("2. E(B-V)=0.3")
Shuai Feng's avatar
Shuai Feng committed
        sed1 = s.HII_Region(inst, temp, halpha=10, logz=-1, vel=100, vdisp=120, ebv=0.3)
Shuai Feng's avatar
Shuai Feng committed
        if np.sum(sed1.flux) != np.sum(sed2.flux):
            print("No Problem!")
            plt.subplot(235)
Shuai Feng's avatar
Shuai Feng committed
            plt.plot(sed1.wave, sed1.flux, color='blue', lw=2, label='E(B-V) = 0.1')
            plt.plot(sed2.wave, sed2.flux, color='red', lw=2, label='E(B-V) = 0.3')
Shuai Feng's avatar
Shuai Feng committed
            plt.legend(frameon=False)
            plt.xlim(3900, 6200)

        plt.tight_layout()
Shuai Feng's avatar
Shuai Feng committed
        # plt.savefig('./image/test_spec1d_ionizedgas.png')
Shuai Feng's avatar
Shuai Feng committed

        print("-----------------------------------------------------------------")
        print(">>> Unit test for **Ionized Gas** Modelling has been passed!")

    def test_AGN(self):

Shuai Feng's avatar
Shuai Feng committed

        print("================================================================")
        print("=====================AGN Spectra Modelling======================")
        print(" ")
        print(">>> Start Test")
        print(" ")

Shuai Feng's avatar
Shuai Feng committed
        temp = s.EmissionLineTemplate(inst, model='nlr')
Shuai Feng's avatar
Shuai Feng committed

Shuai Feng's avatar
Shuai Feng committed
        plt.figure(figsize=(15, 12))
Shuai Feng's avatar
Shuai Feng committed

        print("-------------------------Test  Redshift--------------------------")

        print("1. z=0.2")
Shuai Feng's avatar
Shuai Feng committed
        sed1 = s.AGN(inst, temp, bhmass=1e5, edd_ratio=0.05,
                     halpha_broad=100, halpha_narrow=100, vdisp_broad=2000, vdisp_narrow=500,
                     vel=20000, logz=0, ebv=0.1, dist=20)
Shuai Feng's avatar
Shuai Feng committed
        print("2. z=0.4")
Shuai Feng's avatar
Shuai Feng committed
        sed2 = s.AGN(inst, temp, bhmass=1e5, edd_ratio=0.05,
                     halpha_broad=100, halpha_narrow=100, vdisp_broad=2000, vdisp_narrow=500,
                     vel=40000, logz=0, ebv=0.1, dist=20)
Shuai Feng's avatar
Shuai Feng committed
        if np.sum(sed1.flux) != np.sum(sed2.flux):
            print("No Problem!")
            plt.subplot(221)
Shuai Feng's avatar
Shuai Feng committed
            plt.plot(sed1.wave, sed1.flux, color='blue', lw=2, label='z = 0.2')
            plt.plot(sed2.wave, sed2.flux, color='red', lw=2, label='z = 0.4')
Shuai Feng's avatar
Shuai Feng committed
            plt.legend(frameon=False)
            plt.xlim(3900, 6200)
Shuai Feng's avatar
Shuai Feng committed

Shuai Feng's avatar
Shuai Feng committed
        print("----------------------Test Black Hole Mass-----------------------")

        print("1. Mbh=1e6")
Shuai Feng's avatar
Shuai Feng committed
        sed1 = s.AGN(inst, temp, bhmass=1e6, edd_ratio=0.05,
                     halpha_broad=100, halpha_narrow=100, vdisp_broad=2000, vdisp_narrow=500,
                     vel=20000, logz=0, ebv=0.1, dist=20)
Shuai Feng's avatar
Shuai Feng committed
        print("2. Mbh=5e6")
Shuai Feng's avatar
Shuai Feng committed
        sed2 = s.AGN(inst, temp, bhmass=5e6, edd_ratio=0.05,
                     halpha_broad=100, halpha_narrow=100, vdisp_broad=2000, vdisp_narrow=500,
                     vel=20000, logz=0, ebv=0.1, dist=20)
Shuai Feng's avatar
Shuai Feng committed
        if np.sum(sed1.flux) != np.sum(sed2.flux):
            print("No Problem!")
            plt.subplot(222)
Shuai Feng's avatar
Shuai Feng committed
            plt.plot(sed1.wave, sed1.flux, color='blue', lw=2, label='Mbh = 1e6')
            plt.plot(sed2.wave, sed2.flux, color='red', lw=2, label='Mbh = 5e6')
Shuai Feng's avatar
Shuai Feng committed
            plt.legend(frameon=False)
            plt.xlim(3900, 6200)

        print("------------------------Eddington  Ratio-------------------------")

        print("1. Edd Ratio = 1.0")
Shuai Feng's avatar
Shuai Feng committed
        sed1 = s.AGN(inst, temp, bhmass=1e5, edd_ratio=1.0,
                     halpha_broad=100, halpha_narrow=100, vdisp_broad=2000, vdisp_narrow=500,
                     vel=20000, logz=0, ebv=0.1, dist=20)
Shuai Feng's avatar
Shuai Feng committed
        print("2. Edd Ratio = 0.1")
Shuai Feng's avatar
Shuai Feng committed
        sed2 = s.AGN(inst, temp, bhmass=1e5, edd_ratio=0.1,
                     halpha_broad=100, halpha_narrow=100, vdisp_broad=2000, vdisp_narrow=500,
                     vel=20000, logz=0, ebv=0.1, dist=20)
Shuai Feng's avatar
Shuai Feng committed
        if np.sum(sed1.flux) != np.sum(sed2.flux):
            print("No Problem!")
            plt.subplot(223)
Shuai Feng's avatar
Shuai Feng committed
            plt.plot(sed1.wave, sed1.flux, color='blue', lw=2, label='EddRatio = 1.0')
            plt.plot(sed2.wave, sed2.flux, color='red', lw=2, label='EddRatio = 0.1')
Shuai Feng's avatar
Shuai Feng committed
            plt.legend(frameon=False)
            plt.xlim(3900, 6200)

        print("----------------------Test Dust Extinction-----------------------")

        print("1. E(B-V)=0.1")
Shuai Feng's avatar
Shuai Feng committed
        sed1 = s.AGN(inst, temp, bhmass=1e5, edd_ratio=0.05,
                     halpha_broad=100, halpha_narrow=100, vdisp_broad=2000, vdisp_narrow=500,
                     vel=20000, logz=0, ebv=0.1, dist=20)
Shuai Feng's avatar
Shuai Feng committed
        print("2. E(B-V)=0.3")
Shuai Feng's avatar
Shuai Feng committed
        sed2 = s.AGN(inst, temp, bhmass=1e5, edd_ratio=0.05,
                     halpha_broad=100, halpha_narrow=100, vdisp_broad=2000, vdisp_narrow=500,
                     vel=20000, logz=0, ebv=0.3, dist=20)
Shuai Feng's avatar
Shuai Feng committed
        if np.sum(sed1.flux) != np.sum(sed2.flux):
            print("No Problem!")
            plt.subplot(224)
Shuai Feng's avatar
Shuai Feng committed
            plt.plot(sed1.wave, sed1.flux, color='blue', lw=2, label='E(B-V) = 0.1')
            plt.plot(sed2.wave, sed2.flux, color='red', lw=2, label='E(B-V) = 0.3')
Shuai Feng's avatar
Shuai Feng committed
            plt.legend(frameon=False)
            plt.xlim(3900, 6200)

        plt.tight_layout()
Shuai Feng's avatar
Shuai Feng committed
        # plt.savefig('./image/test_spec1d_agn.png')
Shuai Feng's avatar
Shuai Feng committed

        print("-----------------------------------------------------------------")
        print(">>> Unit test for **AGN** Modelling has been passed!")

Shuai Feng's avatar
Shuai Feng committed

if __name__ == '__main__':