Ejemplo n.º 1
0
 def test_checker(self):
     self.assertTrue(self.res.closest('fn1_correct', 0))
     self.assertTrue(self.res.closest('fn2_correct', 0))
     self.assertTrue(
         os.path.isfile(
             self.sim.realpath('Resources/tests/weatherfile2.motab')))
     cleantest.clean('TestWeatherFileChecker')
Ejemplo n.º 2
0
	def test_sodium_props(self):
		delta = 2 # error tolerated (percentage)
		
		self.assertLessEqual(self.res.interpolate('err_avg_cp_T_test', 1), delta)
		self.assertLessEqual(self.res.interpolate('err_avg_cv_T_test', 1), delta)
		self.assertLessEqual(self.res.interpolate('err_avg_gamma_T_test', 1), delta)
		self.assertLessEqual(self.res.interpolate('err_avg_eta_T_test', 1), delta)
		self.assertLessEqual(self.res.interpolate('err_avg_eta_v_T_test', 1), delta)
		self.assertLessEqual(self.res.interpolate('err_avg_h_rho_test', 1), delta)
		self.assertLessEqual(self.res.interpolate('err_avg_h_fg_T_test', 1), delta)
		self.assertLessEqual(self.res.interpolate('err_avg_h_s_test', 1), delta)
		self.assertLessEqual(self.res.interpolate('err_avg_h_T_test', 1), delta)
		self.assertLessEqual(self.res.interpolate('err_avg_lamda_T_test', 1), delta)
		self.assertLessEqual(self.res.interpolate('err_avg_lamda_v_T_test', 1), delta)
		self.assertLessEqual(self.res.interpolate('err_avg_p_rho_test', 1), delta)
		self.assertLessEqual(self.res.interpolate('err_avg_p_v_T_test', 1), delta)
		self.assertLessEqual(self.res.interpolate('err_avg_rho_T_test', 1), delta)
		self.assertLessEqual(self.res.interpolate('err_avg_rho_v_T_test', 1), delta)
		self.assertLessEqual(self.res.interpolate('err_avg_s_rho_test', 1), delta)
		self.assertLessEqual(self.res.interpolate('err_avg_s_T_test', 1), delta)
		self.assertLessEqual(self.res.interpolate('err_avg_T_h_test', 1), delta)
		self.assertLessEqual(self.res.interpolate('err_avg_T_p_test', 1), delta)
		self.assertLessEqual(self.res.interpolate('err_avg_T_s_test', 1), delta)
		self.assertLessEqual(self.res.interpolate('err_avg_vs_T_test', 1), delta) 

		cleantest.clean('TestSodiumMedium')
Ejemplo n.º 3
0
	def test_sched(self):
		# Note these are set to the values for what is thought to be a working
		# version.  They are not validated against anything or independently
		# calculated.
		self.assertTrue(abs(self.perf[0]- 399743.26)/399743.26<0.01) # epy
		self.assertTrue(abs(self.perf[1]-  158.11)/ 158.11<0.01) # LCOE
		self.assertTrue(abs(self.perf[2]- 45.63)/45.63<0.01) # Capacity factor
		cleantest.clean('Reference_2')
 def test_sched(self):
     # Note these are set to the values for what is thought to be a working
     # version.  They are not validated against anything or independently
     # calculated.
     self.assertTrue(
         abs(self.perf[0] - 9786027.07) / 9786027.07 < 0.01)  # fpy
     self.assertTrue(abs(self.perf[1] - 3.24) / 3.24 < 0.01)  # LCOF
     self.assertTrue(
         abs(self.perf[2] - 72.18) / 72.18 < 0.01)  # Capacity factor
     cleantest.clean('SolarFuelSystem')
 def test_sched(self):
     # Note these are set to the values for what is thought to be a working
     # version.  They are not validated against anything or independently
     # calculated.
     self.assertTrue(
         abs(self.perf[0] - 21077831.1) / 21077831.1 < 0.01)  # fpy
     self.assertTrue(abs(self.perf[1] - 1.52) / 1.52 < 0.01)  # LCOF
     self.assertTrue(
         abs(self.perf[2] - 72.46) / 72.46 < 0.01)  # Capacity factor
     cleantest.clean('SolarMethanolSystem')
    def test_sched(self):
        def getval(n):
            return self.res.interpolate(n, 1)

        if 0:
            self.assertAlmostEqual(self.perf[0], 540466.03, 2)  # epy
            self.assertAlmostEqual(self.perf[1], 75.06, 2)  # LCOE
            self.assertAlmostEqual(self.perf[2], 61.697, 2)  # Capacity factor
            self.assertAlmostEqual(getval('R_des') / 1e6, 619.77,
                                   2)  # Receiver thermal input
            self.assertAlmostEqual(getval('Q_rec_out') / 1e6, 536.25,
                                   2)  # Receiver thermal output
            self.assertAlmostEqual(getval('P_gross') / 1e6, 111.0,
                                   2)  # Power block gross rating
            self.assertAlmostEqual(getval('SM'), 2.46, 2)  # Solar multiple
            self.assertAlmostEqual(getval('D_receiver'), 16.0,
                                   2)  # Receiver diameter
            self.assertAlmostEqual(getval('H_receiver'), 24.0,
                                   2)  # Receiver height
            self.assertAlmostEqual(getval('H_tower'), 175.0, 2)  # Tower height
            self.assertAlmostEqual(getval('n_heliostat'), 6764.0,
                                   2)  # Number of heliostats
        else:
            warnings.warn("Test evaluation has been disabled")

        print(
            "-----------------------------------------------------------------------"
        )
        print('Energy per year:                          %6.2f MWh' %
              (self.perf[0]))
        print('Capacity factor:                          %6.2f %%' %
              (self.perf[2]))
        print('LCOE:                                     $%6.2f/MWh' %
              (self.perf[1]))
        print(
            "-----------------------------------------------------------------------"
        )
        print('Receiver thermal input at design point:   %6.2f MW' %
              (getval('R_des') / 1e6))
        print('Receiver thermal output at design point:  %6.2f MW' %
              (getval('Q_rec_out') / 1e6))
        print('Power block gross rating at design point: %6.2f MW' %
              (getval('P_gross') / 1e6))
        print('Solar multiple:                           %4.2f   ' %
              (getval('SM')))
        print('Receiver diameter:                        %4.2f  m' %
              (getval('D_receiver')))
        print('Receiver height:                          %4.2f  m' %
              (getval('H_receiver')))
        print('Tower height:                             %4.1f  m' %
              (getval('H_tower')))
        print('Number of heliostats:                     %i' %
              (getval('n_heliostat')))

        cleantest.clean('NaSaltsCO2System')
	def test_source(self):
		self.assertAlmostEqual(self.res.closest('wea.lat', 0), -34.236)
		self.assertAlmostEqual(self.res.closest('wea.lon', 0), 142.087)
		tstart = 6600
		solar_noon = 12*60*60 + 34*60 + 54 - tstart
		self.assertAlmostEqual(self.res.interpolate('wea.wbus.alt', solar_noon),
				78.8, delta=0.1)
		self.assertAlmostEqual(self.res.interpolate('wea.wbus.azi', solar_noon),
				360.0, delta=1.0) # very sensitive around noon

		cleantest.clean('TestWeatherSource')
    def test_simple_system(self):
        # Note these are set to the values for what is thought to be a working
        # version.  They are not validated against anything or independently
        # calculated.

        print('index, epy (MWh/year),lcoe peaker ($/MWh),capf (%),srev ($')
        print(self.perf)
        self.assertTrue(abs(self.perf[0] - 352.558) / 352.558 < 0.0005)  # epy
        self.assertTrue(abs(self.perf[1] - 96.490) / 96.490 < 0.0005)  # LCOE
        self.assertTrue(
            abs(self.perf[2] - 40.246) / 40.246 < 0.0005)  # Capacity factor
        cleantest.clean('SimpleSystem')
Ejemplo n.º 9
0
	def test_sched(self):
		def getval(n):
			return self.res.interpolate(n,1)

		warnings.warn("Test evaluation has been disabled")
#		self.assertAlmostEqual(self.perf[0], 560675.35, 2) # epy
#		self.assertAlmostEqual(self.perf[1], 78.32, 2) # LCOE
#		self.assertAlmostEqual(self.perf[2], 64.00, 2) # Capacity factor
#		self.assertAlmostEqual(getval('R_des')/1e6, 741.98, 2) # Receiver thermal input
#		self.assertAlmostEqual(getval('Q_rec_out')/1e6, 587.65, 2) # Receiver thermal output
#		self.assertAlmostEqual(getval('P_gross')/1e6, 111.0, 2) # Power block gross rating
#		self.assertAlmostEqual(getval('SM'), 2.70, 2) # Solar multiple
#		self.assertAlmostEqual(getval('D_receiver'), 35.0, 2) # Receiver diameter
#		self.assertAlmostEqual(getval('H_receiver'), 20.0, 2) # Receiver height
#		self.assertAlmostEqual(getval('H_tower'), 175.0, 2) # Tower height
#		self.assertAlmostEqual(getval('n_heliostat'), 8134.0, 2) # Number of heliostas
		print("-----------------------------------------------------------------------")
		print('Energy per year:                          %6.2f MWh'%(self.perf[0]))
		print('Capacity factor:                          %6.2f %%'%(self.perf[2]))
		print('LCOE:                                     $%6.2f/MWh'%(self.perf[1]))
		print("-----------------------------------------------------------------------")
		print('Receiver thermal input at design point:   %6.2f MW'%(getval('R_des')/1e6))
		print('Receiver thermal output at design point:  %6.2f MW'%(getval('Q_rec_out')/1e6))
		print('Power block gross rating at design point: %6.2f MW'%(getval('P_gross')/1e6))
		print('Solar multiple:                           %4.2f   '%(getval('SM')))
		print('Receiver diameter:                        %4.2f  m'%(getval('D_receiver')))
		print('Receiver height:                          %4.2f  m'%(getval('H_receiver')))
		print('Tower height:                             %4.1f  m'%(getval('H_tower')))
		print('Number of heliostats:                     %i'%(getval('n_heliostat')))
		print('Tank height:                              %4.1f  m'%(getval('H_storage')))
		print('Tank diameter:                            %4.1f  m'%(getval('D_storage')))
		print('Available HTF volume:                     %4.1f m3'%(getval('V_max')))
		print("-----------------------------------------------------------------------")
		print('Site improvement cost:                    $%6.2f'%(getval('C_site')/1e6))
		print('Heliostat field cost:                     $%6.2f'%(getval('C_field')/1e6))
		print('Tower cost:                               $%6.2f'%(getval('C_tower')/1e6))
		print('Receiver cost:                            $%6.2f'%(getval('C_receiver')/1e6))
		print('Piping (Riser/Downcomer) cost:            $%6.2f'%(getval('C_piping')/1e6))
		print('Cold pump cost:                           $%6.2f'%(getval('C_pumps')/1e6))
		print('Thermal Storage cost:                     $%6.2f'%(getval('C_storage')/1e6))
		print('Power Block cost:                         $%6.2f'%(getval('C_block')/1e6))
		print("-----------------------------------------------------------------------")
		print('Subtotal:                                 $%6.2f'%(getval('C_cap_dir_sub')/1e6))
		print('Contingency:                              $%6.2f'%(getval('C_contingency')/1e6))
		print("-----------------------------------------------------------------------")
		print('Total direct cost:                        $%6.2f'%(getval('C_cap_dir_tot')/1e6))
		print('Total EPC cost:                           $%6.2f'%(getval('C_EPC')/1e6))
		print('Total land cost:                          $%6.2f'%(getval('C_land')/1e6))
		print("-----------------------------------------------------------------------")
		print('Total capital cost:                       $%6.2f'%(getval('C_cap')/1e6))
		cleantest.clean('SaltSCO2System')
Ejemplo n.º 10
0
    def test_table(self):
        self.assertAlmostEqual(self.res.interpolate('linear.y[1]', 0.5), 2.5)
        self.assertAlmostEqual(self.res.interpolate('linear.y[1]', 0.5), 2.5)
        self.assertAlmostEqual(self.res.interpolate('linear.y[1]', 1.5), 2)
        self.assertAlmostEqual(self.res.interpolate('linear.y[1]', 2.5), 2.5)
        self.assertAlmostEqual(self.res.interpolate('cderiv.y[1]', 0), 3)
        self.assertAlmostEqual(self.res.interpolate('cderiv.y[1]', 1), 2)
        self.assertAlmostEqual(self.res.interpolate('cderiv.y[1]', 2), 2)
        self.assertAlmostEqual(self.res.interpolate('cderiv.y[1]', 3), 3)
        self.assertAlmostEqual(self.res.interpolate('cseg.y[1]', 0.5), 3)
        self.assertAlmostEqual(self.res.interpolate('cseg.y[1]', 1.5), 2)
        self.assertAlmostEqual(self.res.interpolate('cseg.y[1]', 2.5), 2)

        cleantest.clean('TestWeatherTable')
Ejemplo n.º 11
0
def test_modelica():
    """
	Run the modelica test of STMotab.
	"""
    fn = './TestSTMotab.mo'
    sim = simulation.Simulator(fn)
    sim.compile_model()
    sim.compile_sim(args=['-s'])
    sim.simulate(start=0, stop='1y', step='5m', solver='dassl', nls='homotopy')

    res = DyMat.DyMatFile('TestSTMotab_res.mat')
    assert res.data("t1")[0] == 31500000.
    assert res.data("dnival")[0] == 976.
    assert res.data("dnicol")[0] == 2.

    cleantest.clean('TestSTMotab')
Ejemplo n.º 12
0
    def test_solarposition(self):
        self.longMessage = True  # allow assert msg to be added to std msg
        delta = 0.6  # error tolerated (deg)

        for i, (t, alt, azi) in enumerate(pnts_0):
            self.assertAlmostEqual(self.res.interpolate('solp_0.alt', t),
                                   alt,
                                   delta=delta,
                                   msg='Alt of 0: ' + str(i))
            self.assertAlmostEqual(self.res.interpolate('solp_0.azi', t),
                                   azi,
                                   delta=delta,
                                   msg='Azi of 0: ' + str(i))

        for i, (t, alt, azi) in enumerate(pnts_can):
            self.assertAlmostEqual(self.res.interpolate('solp_can.alt', t),
                                   alt,
                                   delta=delta,
                                   msg='Alt of can: ' + str(i))
            self.assertAlmostEqual(self.res.interpolate('solp_can.azi', t),
                                   azi,
                                   delta=delta,
                                   msg='Azi of can: ' + str(i))

        for i, (t, alt, azi) in enumerate(pnts_den):
            self.assertAlmostEqual(self.res.interpolate('solp_den.alt', t),
                                   alt,
                                   delta=delta,
                                   msg='Alt of den: ' + str(i))
            self.assertAlmostEqual(self.res.interpolate('solp_den.azi', t),
                                   azi,
                                   delta=delta,
                                   msg='Azi of den: ' + str(i))

        for i, (t, alt, azi) in enumerate(pnts_dag):
            self.assertAlmostEqual(self.res.interpolate('solp_dag.alt', t),
                                   alt,
                                   delta=delta,
                                   msg='Alt of dag: ' + str(i))
            self.assertAlmostEqual(self.res.interpolate('solp_dag.azi', t),
                                   azi,
                                   delta=delta,
                                   msg='Azi of dag: ' + str(i))

        cleantest.clean('TestSolarPosition')
Ejemplo n.º 13
0
def test_optimum():
    from solartherm import simulation
    from solartherm import postproc
    import cleantest
    fn = 'TestOptimisation.mo'
    model = 'AO'
    sim = simulation.Simulator(fn, model=model)
    # For some reason won't compile with Modelica library
    sim.compile_model(libs=[], args=['-g=Optimica'])
    sim.compile_sim(args=['-s'])
    sim.simulate(start=0, stop=1, step=0.02, solver='optimization')
    res = postproc.SimResult(sim.model + '_res.mat')

    assert abs(res.interpolate('x1', 0) - 1.0) / 1.0 < 0.01
    assert abs(res.interpolate('x2', 0) - 0.0) < 0.01
    assert abs(res.interpolate('u', 1) - 2.48) / 2.48 < 0.01

    cleantest.clean('AO')
Ejemplo n.º 14
0
def test_system():
    fn = '../examples/SimpleSystemOptimalDispatch.mo'
    sim = simulation.Simulator(fn)
    sim.compile_model()
    sim.compile_sim(args=['-s'])
    sim.simulate(start=0, stop='1y', step='5m', solver='dassl', nls='newton')
    res = postproc.SimResultElec(sim.res_fn)
    perf = res.calc_perf(peaker=True)

    # Note these are set to the values for what is thought to be a working
    # version.  They are not validated against anything or independently
    # calculated.
    print('index, epy (MWh/year),lcoe peaker ($/MWh),capf (%),srev ($')
    print(perf)
    assert abs(perf[0] - 300.757) / 300.757 < 0.01  # epy
    assert abs(perf[1] - 38.798) / 38.798 < 0.01  # LCOE peaker
    assert abs(perf[2] - 100.09) / 100.09 < 0.01  # Capacity factor
    cleantest.clean('SimpleSystemOptimalDispatch')
Ejemplo n.º 15
0
 def test_steering(self):
     self.assertAlmostEqual(float(self.res.interpolate('conc.R_foc[1]', 0)),
                            0)
     self.assertAlmostEqual(float(self.res.interpolate('conc.actual', 1)),
                            0)
     self.assertAlmostEqual(float(self.res.interpolate('conc.actual', 11)),
                            0.1)
     self.assertAlmostEqual(float(self.res.interpolate('conc.actual', 51)),
                            0.499)
     self.assertAlmostEqual(float(self.res.interpolate('conc.actual', 100)),
                            0.499)
     self.assertAlmostEqual(float(self.res.interpolate('conc.actual', 120)),
                            0.299)
     self.assertAlmostEqual(float(self.res.interpolate('conc.actual', 130)),
                            0.201)
     self.assertAlmostEqual(float(self.res.interpolate('conc.actual', 200)),
                            0.201)
     cleantest.clean('TestSteeredCL')
def test_ref2solstice():
    fn = '../examples/Reference_2_solstice.mo'
    sim = simulation.Simulator(fn)
    sim.compile_model()
    sim.compile_sim(args=['-s'])
    sim.update_pars(['n_row_oelt', 'n_col_oelt'],
                    ['3', '3'])  # reduce oelt resolution
    sim.simulate(start=0, stop='1y', step='5m', solver='dassl', nls='newton')
    res = postproc.SimResultElec(sim.res_fn)
    perf = res.calc_perf()

    # Note these are set to the values for what is thought to be a working
    # version.  They are not validated against anything or independently
    # calculated.

    assert abs(perf[0] - 393933.791) / 393933.791 < 0.1  # epy
    assert abs(perf[1] - 160.352) / 160.352 < 0.1  # LCOE
    assert abs(perf[2] - 44.969) / 44.969 < 0.1  # Capacity factor
    cleantest.clean('Reference_2_solstice')
    def test_sched(self):
        def getval(n):
            return self.res.interpolate(n, 1)

        warnings.warn("Test evaluation has been disabled")
        #		self.assertAlmostEqual(self.perf[0], 569076.05, 2) # epy
        #		self.assertAlmostEqual(self.perf[1], 75.17, 2) # LCOE
        #		self.assertAlmostEqual(self.perf[2], 64.96, 2) # Capacity factor
        #		self.assertAlmostEqual(getval('R_des')/1e6, 633.04, 2) # Receiver thermal input
        #		self.assertAlmostEqual(getval('Q_rec_out')/1e6, 581.38, 2) # Receiver thermal output
        #		self.assertAlmostEqual(getval('P_gross')/1e6, 111.0, 2) # Power block gross rating
        #		self.assertAlmostEqual(getval('SM'), 2.67, 2) # Solar multiple
        #		self.assertAlmostEqual(getval('H_tower'), 47.0, 2) # Tower height
        #		self.assertAlmostEqual(getval('n_heliostat'), 2822.0, 2) # Number of heliostas
        #		self.assertAlmostEqual(getval('n_modules'), 58.0, 2) # Number of modules
        print(
            "-----------------------------------------------------------------------"
        )
        print('Energy per year:                          %6.2f MWh' %
              (self.perf[0]))
        print('Capacity factor:                          %6.2f %%' %
              (self.perf[2]))
        print('LCOE:                                     $%6.2f/MWh' %
              (self.perf[1]))
        print(
            "-----------------------------------------------------------------------"
        )
        print('Receiver thermal input at design point:   %6.2f MW' %
              (getval('R_des') / 1e6))
        print('Receiver thermal output at design point:  %6.2f MW' %
              (getval('Q_rec_out') / 1e6))
        print('Power block gross rating at design point: %6.2f MW' %
              (getval('P_gross') / 1e6))
        print('Solar multiple:                           %4.2f   ' %
              (getval('SM')))
        print('Tower height (per module):                %4.1f  m' %
              (getval('H_tower')))
        print('Number of heliostats (per module):        %i' %
              (getval('n_heliostat')))
        print('Number of modules:                        %i' %
              (getval('n_modules')))
        cleantest.clean('NaSaltSCO2System_modular')
Ejemplo n.º 18
0
def test_pso():
    outfile = 'TestStOptimise_pso_results.txt'
    obj = 999
    x = 999
    y = 999
    i = 0
    args = 'st_optimise --outfile_f %s --start 0 --stop 1 --objective f_rosen --method pso --maxiter 100 --test %s x1=-2,2,1 y1=-2,2,-1.5' % (
        outfile, MODELICAFILE)
    while obj > 0.1 or abs(x - 1.) > 0.5 or abs(y - 1.) > 0.5:
        subprocess.call(args, shell=True)
        obj, x, y = get_res(outfile)
        print('Attempt ', i + 1)
        i += 1
    print('Total attempts: ', i)

    assert abs(obj) < 1e-1
    assert abs(x - 1.) < 5e-1
    assert abs(y - 1.) < 5e-1
    map(os.unlink, glob.glob(outfile))
    cleantest.clean('TestStOptimise')
Ejemplo n.º 19
0
def test_nsga2():

    outfile = 'TestStOptimise_nsga2_results.txt'
    front = 'TestStOptimise_nsga2_pareto_front.txt'
    figfile = 'TestStOptimise_nsga2_pareto_front.png'
    args = 'st_optimise --outfile_f %s --outfile_p %s --outfig %s --start 0 --stop 1 --objective f_schaffer1,f_schaffer2 --method nsga2 --test %s x2=-100,100,2' % (
        outfile, front, figfile, MODELICAFILE)
    subprocess.call(args, shell=True)

    with open(front) as f:
        content = f.read().splitlines()
    f.close()

    names = content[0].split(' ')
    names = names[:-1]

    summary = {}
    for n in names:
        summary[n] = np.array([])

    t = len(content)
    for i in range(1, t):
        c = content[i]
        l = c.split(" ")
        for j in range(len(names)):
            summary[names[j]] = np.append(summary[names[j]], float(l[j]))

    f_schaffer1 = summary['f_schaffer1']
    f_schaffer2 = summary['f_schaffer2']

    idx = [10, 20, 50, 70]
    for i in idx:
        f1 = f_schaffer1[i]
        f2 = f_schaffer2[i]
        assert (abs((f2 - get_schaffer_front(f1)) / f2) < 0.1)
    map(os.unlink, glob.glob(outfile))
    map(os.unlink, glob.glob(figfile))
    map(os.unlink, glob.glob(front))
    cleantest.clean('TestStOptimise')
Ejemplo n.º 20
0
    def test_tmy3_weather_file(self):
        self.assertAlmostEqual(self.res.interpolate('l1[2]', 1), l_1[1])
        self.assertAlmostEqual(self.res.interpolate('l1[3]', 1), l_1[2])
        self.assertAlmostEqual(self.res.interpolate('l1[4]', 1), l_1[3])
        self.assertAlmostEqual(self.res.interpolate('l1[5]', 1), l_1[4])
        self.assertAlmostEqual(self.res.interpolate('l1[6]', 1), l_1[5])
        self.assertAlmostEqual(self.res.interpolate('l1[7]', 1), l_1[6])
        self.assertAlmostEqual(self.res.interpolate('l1[8]', 1), l_1[7])
        self.assertAlmostEqual(self.res.interpolate('l1[9]', 1), l_1[8])

        self.assertAlmostEqual(self.res.interpolate('l2[2]', 1), l_2[1])
        self.assertAlmostEqual(self.res.interpolate('l2[3]', 1), l_2[2])
        self.assertAlmostEqual(self.res.interpolate('l2[4]', 1), l_2[3])
        self.assertAlmostEqual(self.res.interpolate('l2[5]', 1), l_2[4])
        self.assertAlmostEqual(self.res.interpolate('l2[6]', 1), l_2[5])
        self.assertAlmostEqual(self.res.interpolate('l2[7]', 1), l_2[6])
        self.assertAlmostEqual(self.res.interpolate('l2[8]', 1), l_2[7])
        self.assertAlmostEqual(self.res.interpolate('l2[9]', 1), l_2[8])

        self.assertAlmostEqual(self.res.interpolate('l3[2]', 1), l_3[1])
        self.assertAlmostEqual(self.res.interpolate('l3[3]', 1), l_3[2])
        self.assertAlmostEqual(self.res.interpolate('l3[4]', 1), l_3[3])
        self.assertAlmostEqual(self.res.interpolate('l3[5]', 1), l_3[4])
        self.assertAlmostEqual(self.res.interpolate('l3[6]', 1), l_3[5])
        self.assertAlmostEqual(self.res.interpolate('l3[7]', 1), l_3[6])
        self.assertAlmostEqual(self.res.interpolate('l3[8]', 1), l_3[7])
        self.assertAlmostEqual(self.res.interpolate('l3[9]', 1), l_3[8])

        self.assertAlmostEqual(self.res.interpolate('l4[2]', 1), l_4[1])
        self.assertAlmostEqual(self.res.interpolate('l4[3]', 1), l_4[2])
        self.assertAlmostEqual(self.res.interpolate('l4[4]', 1), l_4[3])
        self.assertAlmostEqual(self.res.interpolate('l4[5]', 1), l_4[4])
        self.assertAlmostEqual(self.res.interpolate('l4[6]', 1), l_4[5])
        self.assertAlmostEqual(self.res.interpolate('l4[7]', 1), l_4[6])
        self.assertAlmostEqual(self.res.interpolate('l4[8]', 1), l_4[7])
        self.assertAlmostEqual(self.res.interpolate('l4[9]', 1), l_4[8])

        cleantest.clean('TestTMY3WeatherFileChecker')
Ejemplo n.º 21
0
 def test_poly_calc(self):
     self.assertAlmostEqual(self.res.interpolate('p1.y', 1), 1)
     self.assertAlmostEqual(self.res.interpolate('p2.y', 1), 1)
     self.assertAlmostEqual(self.res.interpolate('p3.y', 1), 6)
     self.assertAlmostEqual(self.res.interpolate('p4.y', 1), 76)
     cleantest.clean('TestPolynomial')
Ejemplo n.º 22
0
 def test_squaring(self):
     self.assertTrue(abs(self.res.interpolate('y', 1) - 1) / 1 < 0.01)
     self.assertTrue(abs(self.res.interpolate('y', 2) - 4) / 4 < 0.01)
     cleantest.clean('TestExternalPyFunc')
Ejemplo n.º 23
0
 def test_squaring(self):
     self.assertEqual(self.res.interpolate('y', 1), 1)
     self.assertEqual(self.res.interpolate('y', 2), 4)
     self.assertEqual(self.res.interpolate('y', 3), 9)
     self.assertEqual(self.res.interpolate('y', 4), 16)
     cleantest.clean('TestExternalC')
Ejemplo n.º 24
0
 def test_interp(self):
     self.assertEqual(self.res.interpolate('res', 0), 0)
     self.assertEqual(self.res.interpolate('val', 0), 3.)
     cleantest.clean('TestSTTable')
Ejemplo n.º 25
0
	def test_touching(self):
		self.assertTrue(abs(self.res.interpolate('nu', 0)-0.8834)/0.8834<0.01)
		cleantest.clean('TestSolsticePyFunc')