Changeset 2995


Ignore:
Timestamp:
May 29, 2006, 10:28:39 AM (18 years ago)
Author:
ole
Message:

Added extra test (from real life)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • inundation/fit_interpolate/test_interpolate.py

    r2881 r2995  
    11451145            raise 'Should raise exception'
    11461146
     1147
     1148    def test_interpolation_function_time(self):
     1149        """Test a long time series with an error in it (this did cause an
     1150        error once)
     1151        """
     1152
     1153        time = array(\
     1154        [0.00000000e+00, 5.00000000e-02, 1.00000000e-01,   1.50000000e-01,
     1155        2.00000000e-01,   2.50000000e-01,   3.00000000e-01,   3.50000000e-01,
     1156        4.00000000e-01,   4.50000000e-01,   5.00000000e-01,   5.50000000e-01,
     1157        6.00000000e-01,   6.50000000e-01,   7.00000000e-01,   7.50000000e-01,
     1158        8.00000000e-01,   8.50000000e-01,   9.00000000e-01,   9.50000000e-01,
     1159        1.00000000e-00,   1.05000000e+00,   1.10000000e+00,   1.15000000e+00,
     1160        1.20000000e+00,   1.25000000e+00,   1.30000000e+00,   1.35000000e+00,
     1161        1.40000000e+00,   1.45000000e+00,   1.50000000e+00,   1.55000000e+00,
     1162        1.60000000e+00,   1.65000000e+00,   1.70000000e+00,   1.75000000e+00,
     1163        1.80000000e+00,   1.85000000e+00,   1.90000000e+00,   1.95000000e+00,
     1164        2.00000000e+00,   2.05000000e+00,   2.10000000e+00,   2.15000000e+00,
     1165        2.20000000e+00,   2.25000000e+00,   2.30000000e+00,   2.35000000e+00,
     1166        2.40000000e+00,   2.45000000e+00,   2.50000000e+00,   2.55000000e+00,
     1167        2.60000000e+00,   2.65000000e+00,   2.70000000e+00,   2.75000000e+00,
     1168        2.80000000e+00,   2.85000000e+00,   2.90000000e+00,   2.95000000e+00,
     1169        3.00000000e+00,   3.05000000e+00,   9.96920997e+36,   3.15000000e+00,
     1170        3.20000000e+00,   3.25000000e+00,   3.30000000e+00,   3.35000000e+00,
     1171        3.40000000e+00,   3.45000000e+00,   3.50000000e+00,   3.55000000e+00,
     1172        3.60000000e+00,   3.65000000e+00,   3.70000000e+00,   3.75000000e+00,
     1173        3.80000000e+00,   3.85000000e+00,   3.90000000e+00,   3.95000000e+00,
     1174        4.00000000e+00,   4.05000000e+00,   4.10000000e+00,   4.15000000e+00,
     1175        4.20000000e+00,   4.25000000e+00,   4.30000000e+00,   4.35000000e+00,
     1176        4.40000000e+00,   4.45000000e+00,   4.50000000e+00,   4.55000000e+00,
     1177        4.60000000e+00,   4.65000000e+00,   4.70000000e+00,   4.75000000e+00,
     1178        4.80000000e+00,   4.85000000e+00,   4.90000000e+00,   4.95000000e+00,
     1179        5.00000000e+00,   5.05000000e+00,   5.10000000e+00,   5.15000000e+00,
     1180        5.20000000e+00,   5.25000000e+00,   5.30000000e+00,   5.35000000e+00,
     1181        5.40000000e+00,   5.45000000e+00,   5.50000000e+00,   5.55000000e+00,
     1182        5.60000000e+00,   5.65000000e+00,   5.70000000e+00,   5.75000000e+00,
     1183        5.80000000e+00,   5.85000000e+00,   5.90000000e+00,   5.95000000e+00,
     1184        6.00000000e+00,   6.05000000e+00,   6.10000000e+00,   6.15000000e+00,
     1185        6.20000000e+00,   6.25000000e+00,   6.30000000e+00,   6.35000000e+00,
     1186        6.40000000e+00,   6.45000000e+00,   6.50000000e+00,   6.55000000e+00,
     1187        6.60000000e+00,   6.65000000e+00,   6.70000000e+00,   6.75000000e+00,
     1188        6.80000000e+00,   6.85000000e+00,   6.90000000e+00,   6.95000000e+00,
     1189        7.00000000e+00,   7.05000000e+00,   7.10000000e+00,   7.15000000e+00,
     1190        7.20000000e+00,   7.25000000e+00,   7.30000000e+00,   7.35000000e+00,
     1191        7.40000000e+00,   7.45000000e+00,   7.50000000e+00,   7.55000000e+00,
     1192        7.60000000e+00,   7.65000000e+00,   7.70000000e+00,   7.75000000e+00,
     1193        7.80000000e+00,   7.85000000e+00,   7.90000000e+00,   7.95000000e+00,
     1194        8.00000000e+00,   8.05000000e+00,   8.10000000e+00,   8.15000000e+00,
     1195        8.20000000e+00,   8.25000000e+00,   8.30000000e+00,   8.35000000e+00,
     1196        8.40000000e+00,   8.45000000e+00,   8.50000000e+00,   8.55000000e+00,
     1197        8.60000000e+00,   8.65000000e+00,   8.70000000e+00,   8.75000000e+00,
     1198        8.80000000e+00,   8.85000000e+00,   8.90000000e+00,   8.95000000e+00,
     1199        9.00000000e+00,   9.05000000e+00,   9.10000000e+00,   9.15000000e+00,
     1200        9.20000000e+00,   9.25000000e+00,   9.30000000e+00,   9.35000000e+00,
     1201        9.40000000e+00,   9.45000000e+00,   9.50000000e+00,   9.55000000e+00,
     1202        9.60000000e+00,   9.65000000e+00,   9.70000000e+00,   9.75000000e+00,
     1203        9.80000000e+00,   9.85000000e+00,   9.90000000e+00,   9.95000000e+00,
     1204        1.00000000e+01,   1.00500000e+01,   1.01000000e+01,   1.01500000e+01,
     1205        1.02000000e+01,   1.02500000e+01,   1.03000000e+01,   1.03500000e+01,
     1206        1.04000000e+01,   1.04500000e+01,   1.05000000e+01,   1.05500000e+01,
     1207        1.06000000e+01,   1.06500000e+01,   1.07000000e+01,   1.07500000e+01,
     1208        1.08000000e+01,   1.08500000e+01,   1.09000000e+01,   1.09500000e+01,
     1209        1.10000000e+01,   1.10500000e+01,   1.11000000e+01,   1.11500000e+01,
     1210        1.12000000e+01,   1.12500000e+01,   1.13000000e+01,   1.13500000e+01,
     1211        1.14000000e+01,   1.14500000e+01,   1.15000000e+01,   1.15500000e+01,
     1212        1.16000000e+01,   1.16500000e+01,   1.17000000e+01,   1.17500000e+01,
     1213        1.18000000e+01,   1.18500000e+01,   1.19000000e+01,   1.19500000e+01,
     1214        1.20000000e+01,   1.20500000e+01,   1.21000000e+01,   1.21500000e+01,
     1215        1.22000000e+01,   1.22500000e+01,   1.23000000e+01,   1.23500000e+01,
     1216        1.24000000e+01,   1.24500000e+01,   1.25000000e+01,   1.25500000e+01,
     1217        1.26000000e+01,   1.26500000e+01,   1.27000000e+01,   1.27500000e+01,
     1218        1.28000000e+01,   1.28500000e+01,   1.29000000e+01,   1.29500000e+01,
     1219        1.30000000e+01,   1.30500000e+01,   1.31000000e+01,   1.31500000e+01,
     1220        1.32000000e+01,   1.32500000e+01,   1.33000000e+01,   1.33500000e+01,
     1221        1.34000000e+01,   1.34500000e+01,   1.35000000e+01,   1.35500000e+01,
     1222        1.36000000e+01,   1.36500000e+01,   1.37000000e+01,   1.37500000e+01,
     1223        1.38000000e+01,   1.38500000e+01,   1.39000000e+01,   1.39500000e+01,
     1224        1.40000000e+01,   1.40500000e+01,   1.41000000e+01,   1.41500000e+01,
     1225        1.42000000e+01,   1.42500000e+01,   1.43000000e+01,   1.43500000e+01,
     1226        1.44000000e+01,   1.44500000e+01,   1.45000000e+01,   1.45500000e+01,
     1227        1.46000000e+01,   1.46500000e+01,   1.47000000e+01,   1.47500000e+01,
     1228        1.48000000e+01,   1.48500000e+01,   1.49000000e+01,   1.49500000e+01,
     1229        1.50000000e+01,   1.50500000e+01,   1.51000000e+01,   1.51500000e+01,
     1230        1.52000000e+01,   1.52500000e+01,   1.53000000e+01,   1.53500000e+01,
     1231        1.54000000e+01,   1.54500000e+01,   1.55000000e+01,   1.55500000e+01,
     1232        1.56000000e+01,   1.56500000e+01,   1.57000000e+01,   1.57500000e+01,
     1233        1.58000000e+01,   1.58500000e+01,   1.59000000e+01,   1.59500000e+01,
     1234        1.60000000e+01,   1.60500000e+01,   1.61000000e+01,   1.61500000e+01,
     1235        1.62000000e+01,   1.62500000e+01,   1.63000000e+01,   1.63500000e+01,
     1236        1.64000000e+01,   1.64500000e+01,   1.65000000e+01,   1.65500000e+01,
     1237        1.66000000e+01,   1.66500000e+01,   1.67000000e+01,   1.67500000e+01,
     1238        1.68000000e+01,   1.68500000e+01,   1.69000000e+01,   1.69500000e+01,
     1239        1.70000000e+01,   1.70500000e+01,   1.71000000e+01,   1.71500000e+01,
     1240        1.72000000e+01,   1.72500000e+01,   1.73000000e+01,   1.73500000e+01,
     1241        1.74000000e+01,   1.74500000e+01,   1.75000000e+01,   1.75500000e+01,
     1242        1.76000000e+01,   1.76500000e+01,   1.77000000e+01,   1.77500000e+01,
     1243        1.78000000e+01,   1.78500000e+01,   1.79000000e+01,   1.79500000e+01,
     1244        1.80000000e+01,   1.80500000e+01,   1.81000000e+01,   1.81500000e+01,
     1245        1.82000000e+01,   1.82500000e+01,   1.83000000e+01,   1.83500000e+01,
     1246        1.84000000e+01,   1.84500000e+01,   1.85000000e+01,   1.85500000e+01,
     1247        1.86000000e+01,   1.86500000e+01,   1.87000000e+01,   1.87500000e+01,
     1248        1.88000000e+01,   1.88500000e+01,   1.89000000e+01,   1.89500000e+01,
     1249        1.90000000e+01,   1.90500000e+01,   1.91000000e+01,   1.91500000e+01,
     1250        1.92000000e+01,   1.92500000e+01,   1.93000000e+01,   1.93500000e+01,
     1251        1.94000000e+01,   1.94500000e+01,   1.95000000e+01,   1.95500000e+01,
     1252        1.96000000e+01,   1.96500000e+01,   1.97000000e+01,   1.97500000e+01,
     1253        1.98000000e+01,   1.98500000e+01,   1.99000000e+01,   1.99500000e+01,
     1254        2.00000000e+01,   2.00500000e+01,   2.01000000e+01,   2.01500000e+01,
     1255        2.02000000e+01,   2.02500000e+01,   2.03000000e+01,   2.03500000e+01,
     1256        2.04000000e+01,   2.04500000e+01,   2.05000000e+01,   2.05500000e+01,
     1257        2.06000000e+01,   2.06500000e+01,   2.07000000e+01,   2.07500000e+01,
     1258        2.08000000e+01,   2.08500000e+01,   2.09000000e+01,   2.09500000e+01,
     1259        2.10000000e+01,   2.10500000e+01,   2.11000000e+01,   2.11500000e+01,
     1260        2.12000000e+01,   2.12500000e+01,   2.13000000e+01,   2.13500000e+01,
     1261        2.14000000e+01,   2.14500000e+01,   2.15000000e+01,   2.15500000e+01,
     1262        2.16000000e+01,   2.16500000e+01,   2.17000000e+01,   2.17500000e+01,
     1263        2.18000000e+01,   2.18500000e+01,   2.19000000e+01,   2.19500000e+01,
     1264        2.20000000e+01,   2.20500000e+01,   2.21000000e+01,   2.21500000e+01,
     1265        2.22000000e+01,   2.22500000e+01,   2.23000000e+01,   2.23500000e+01,
     1266        2.24000000e+01,   2.24500000e+01,   2.25000000e+01])
     1267
     1268        #print 'Diff', time[1:] - time[:-1]
     1269
     1270        #Setup mesh used to represent fitted function
     1271        a = [0.0, 0.0]
     1272        b = [0.0, 2.0]
     1273        c = [2.0, 0.0]
     1274        d = [0.0, 4.0]
     1275        e = [2.0, 2.0]
     1276        f = [4.0, 0.0]
     1277
     1278        points = [a, b, c, d, e, f]
     1279        #bac, bce, ecf, dbe
     1280        triangles = [[1,0,2], [1,2,4], [4,2,5], [3,1,4]]
     1281
     1282
     1283        #New datapoints where interpolated values are sought
     1284        interpolation_points = [[ 0.0, 0.0],
     1285                                [ 0.5, 0.5],
     1286                                [ 0.7, 0.7],
     1287                                [ 1.0, 0.5],
     1288                                [ 2.0, 0.4],
     1289                                [ 545354534, 4354354353]] # outside the mesh
     1290
     1291        #One quantity
     1292        Q = zeros( (len(time),6), Float )
     1293
     1294        #Linear in time and space
     1295        for i, t in enumerate(time):
     1296            Q[i, :] = t*linear_function(points)
     1297
     1298        #Check interpolation of one quantity using interpolaton points)
     1299        try:
     1300            I = Interpolation_function(time, Q,
     1301                                       vertex_coordinates = points,
     1302                                       triangles = triangles,
     1303                                       interpolation_points = interpolation_points,
     1304                                       verbose = False)
     1305        except:
     1306            pass
     1307        else:
     1308            raise 'Should raise exception due to time being non-monotoneous'           
     1309     
     1310
    11471311    def test_points_outside_the_polygon(self):
    11481312        a = [-1.0, 0.0]
Note: See TracChangeset for help on using the changeset viewer.