source: branches/numpy/anuga/culvert_flows/test_culvert_routines.py @ 6823

Last change on this file since 6823 was 6790, checked in by rwilson, 16 years ago

Removed Numeric usage.

File size: 3.7 KB
Line 
1#!/usr/bin/env python
2
3
4import unittest
5import os.path
6import sys
7
8from anuga.utilities.system_tools import get_pathname_from_package
9from anuga.culvert_flows.culvert_routines import boyd_generalised_culvert_model
10import numpy as num
11
12
13class Test_culvert_routines(unittest.TestCase):
14    def setUp(self):
15        pass
16
17    def tearDown(self):
18        pass
19
20
21    def test_boyd_1(self):
22        """test_boyd_1
23       
24        This tests the Boyd routine with data obtained from ??? by Petar Milevski   
25        """
26        # FIXME(Ole): This test fails (20 Feb 2009)
27
28        g=9.81
29        culvert_slope=0.1  # Downward
30
31        inlet_depth=2.0
32        outlet_depth=0.0
33
34        culvert_length=4.0
35        culvert_width=1.2
36        culvert_height=0.75
37
38        culvert_type='box'
39        manning=0.013
40        sum_loss=0.0
41
42        inlet_specific_energy=inlet_depth #+0.5*v**2/g
43        z_in = 0.0
44        z_out = -culvert_length*culvert_slope/100
45        E_in = z_in+inlet_depth # +
46        E_out = z_out+outlet_depth # +
47        delta_total_energy = E_in-E_out
48
49        Q, v, d = boyd_generalised_culvert_model(inlet_depth, 
50                                                 outlet_depth,
51                                                 inlet_specific_energy, 
52                                                 delta_total_energy, 
53                                                 g,
54                                                 culvert_length,
55                                                 culvert_width,
56                                                 culvert_height,
57                                                 culvert_type,
58                                                 manning,
59                                                 sum_loss)
60       
61        #print Q, v, d
62        assert num.allclose(Q, 3.118, rtol=1.0e-3)
63       
64
65        #assert num.allclose(v, 0.93)
66        #assert num.allclose(d, 0.0)
67       
68
69    def test_boyd_2(self):
70        """test_boyd_2
71       
72        This tests the Boyd routine with data obtained from ??? by Petar Milevski   
73        """
74        # FIXME(Ole): This test fails (20 Feb 2009)
75
76        g=9.81
77        culvert_slope=0.1  # Downward
78
79        inlet_depth=0.2
80        outlet_depth=0.0
81
82        culvert_length=4.0
83        culvert_width=1.2
84        culvert_height=0.75
85
86        culvert_type='box'
87        manning=0.013
88        sum_loss=0.0
89
90        inlet_specific_energy=inlet_depth #+0.5*v**2/g
91        z_in = 0.0
92        z_out = -culvert_length*culvert_slope/100
93        E_in = z_in+inlet_depth # +
94        E_out = z_out+outlet_depth # +
95        delta_total_energy = E_in-E_out
96
97        Q, v, d = boyd_generalised_culvert_model(inlet_depth, 
98                                                 outlet_depth,
99                                                 inlet_specific_energy, 
100                                                 delta_total_energy, 
101                                                 g,
102                                                 culvert_length,
103                                                 culvert_width,
104                                                 culvert_height,
105                                                 culvert_type,
106                                                 manning,
107                                                 sum_loss)
108       
109        #print Q, v, d
110        #assert num.allclose(Q, 0.185, rtol=1.0e-3)
111        #assert num.allclose(v, 0.93)
112        #assert num.allclose(d, 0.0)
113       
114   
115               
116#-------------------------------------------------------------
117if __name__ == "__main__":
118    suite = unittest.makeSuite(Test_culvert_routines, 'test')
119    runner = unittest.TextTestRunner()
120    runner.run(suite)
121
Note: See TracBrowser for help on using the repository browser.