00001 from __future__ import with_statement
00002
00003 import sys
00004 import os.path
00005 import unittest
00006 import GPyUnit.util
00007 from GPyUnit.util import DispatchEx
00008
00009 def _adjacent_file(file):
00010 import os.path
00011 return os.path.join(os.path.dirname(os.path.abspath(__file__)), file)
00012
00013 class TestFloatingPoint(unittest.TestCase):
00014 @GPyUnit.util.dec_disable_early_binding
00015 def testXME(self):
00016 from GPyUnit import util
00017 util.register_xmp(_adjacent_file('GME391FloatingPointTest.xmp'))
00018 self.project = DispatchEx('Mga.MgaProject')
00019 self.project.Create(self.connstr, 'GME391FloatingPointTest')
00020 self.territory = self.project.BeginTransactionInNewTerr()
00021
00022 KindModel = self.project.RootMeta.RootFolder.GetDefinedFCOByNameDisp('KindModel', True)
00023 def create(name, val):
00024 m = self.project.RootFolder.CreateRootObject(KindModel)
00025 m.Name = name
00026 m.SetAttributeByNameDisp('d', val)
00027
00028 models = [
00029 ('mninf', -float('inf')),
00030 ('m.0001', 0.0001),
00031 ('m.001', 0.001),
00032 ('m.01', 0.01),
00033 ('m.1', 0.1),
00034 ('m1', 1),
00035 ('m1.0001', 1.0001),
00036 ('m1.1', 1.1),
00037 ('m10', 10),
00038 ('m111', 111),
00039 ('m100', 100),
00040 ('minf', float('inf')),
00041 ('mnan', float('NaN')),
00042 ('GME_391', 1.82736408912),
00043 ('GME_3912', 182736408.912),
00044 ('GME_3913', 18273.6408912),
00045 ('GME_3914', 1.82736408912e21),
00046 ('GME_3915', 1.82736408912e14),
00047 ('Javabug', 2.2250738585072012e-308),
00048 ('PHPbug', 2.2250738585072011e-308),
00049 ('sqlite1', 9.87e+31),
00050 ('sqlite2', 9.944932e+31),
00051 ('sqlite3', 8.948471e+15),
00052 ('sqlite4', 1.23456789012345e+300),
00053 ('sqlite5', 1.23456e-300),
00054 ('sqlite6', 0.000001),
00055 ]
00056 tcl_suite = (
00057
00058
00059
00060
00061
00062
00063
00064
00065 0E0,
00066 -0E0,
00067 1E0,
00068 15E-1,
00069 125E-2,
00070 1125E-3,
00071 10625E-4,
00072 103125E-5,
00073 1015625E-6,
00074 10078125E-7,
00075 100390625E-8,
00076 1001953125E-9,
00077 10009765625E-10,
00078 100048828125E-11,
00079 1000244140625E-12,
00080 10001220703125E-13,
00081 100006103515625E-14,
00082 1000030517578125E-15,
00083 10000152587890625E-16,
00084 +8E153,
00085 -1E153,
00086 +9E306,
00087 -2E153,
00088 +7E-304,
00089 -3E-49,
00090 +7E-303,
00091 -6E-49,
00092 +9E43,
00093 -9E44,
00094 +8E303,
00095 -1E303,
00096 +7E-287,
00097 -2E-204,
00098 +2E-205,
00099 -9E-47,
00100 +34E195,
00101 -68E195,
00102 +85E194,
00103 -67E97,
00104 +93E-234,
00105 -19E-87,
00106 +38E-87,
00107 -38E-88,
00108 -69E220,
00109 +18E43,
00110 -36E43,
00111 +61E-99,
00112 -43E-92,
00113 +86E-92,
00114 -51E-74,
00115 +283E85,
00116 -566E85,
00117 +589E187,
00118 -839E143,
00119 -744E-234,
00120 +930E-235,
00121 -186E-234,
00122 +604E175,
00123 -302E175,
00124 +755E174,
00125 -151E175,
00126 +662E-213,
00127 -408E-74,
00128 +510E-75,
00129 +6782E55,
00130 -2309E92,
00131 +7963E34,
00132 -3391E55,
00133 +7903E-96,
00134 -7611E-226,
00135 +4907E-196,
00136 -5547E-311,
00137 +5311E241,
00138 -5311E243,
00139 +5311E242,
00140 +9269E-45,
00141 -8559E-289,
00142 +8699E-276,
00143 -8085E-64,
00144 +74819E201,
00145 -82081E41,
00146 +51881E37,
00147 -55061E157,
00148 +77402E-215,
00149 -33891E-92,
00150 +38701E-215,
00151 -82139E-76,
00152 +75859E25,
00153 +89509E140,
00154 -57533E287,
00155 +46073E-32,
00156 -92146E-32,
00157 +83771E-74,
00158 -34796E-276,
00159 +584169E229,
00160 +164162E41,
00161 -328324E41,
00162 +209901E-11,
00163 -419802E-11,
00164 +940189E-112,
00165 -892771E-213,
00166 +757803E120,
00167 -252601E120,
00168 +252601E121,
00169 -505202E120,
00170 +970811E-264,
00171 -654839E-60,
00172 +289767E-178,
00173 -579534E-178,
00174 -8823691E130,
00175 +9346704E229,
00176 -1168338E229,
00177 -6063369E-136,
00178 +3865421E-225,
00179 -5783893E-127,
00180 +2572231E223,
00181 -5144462E223,
00182 +1817623E109,
00183 +6431543E-97,
00184 -5444097E-21,
00185 +8076999E-121,
00186 -9997649E-270,
00187 +50609263E157,
00188 +70589528E130,
00189 -88236910E129,
00190 +87575437E-310,
00191 -23135572E-127,
00192 +85900881E177,
00193 -84863171E113,
00194 +68761586E232,
00195 -50464069E286,
00196 +27869147E-248,
00197 -55738294E-248,
00198 +70176353E-53,
00199 -80555086E-32,
00200 -491080654E121,
00201 +526250918E287,
00202 -245540327E121,
00203 -175150874E-310,
00204 +350301748E-310,
00205 -437877185E-311,
00206 +458117166E52,
00207 -916234332E52,
00208 +229058583E52,
00209 -525789935E98,
00210 +282926897E-227,
00211 -565853794E-227,
00212 +667284113E-240,
00213 -971212611E-126,
00214 +9981396317E-182,
00215 -5035231965E-156,
00216 +8336960483E-153,
00217 -8056371144E-155,
00218 +6418488827E79,
00219 -3981006983E252,
00220 +7962013966E252,
00221 -4713898551E261,
00222 +8715380633E-58,
00223 -9078555839E-109,
00224 +9712126110E-127,
00225 +42333842451E201,
00226 -84667684902E201,
00227 +23792120709E-315,
00228 -78564021519E-227,
00229 +71812054883E-188,
00230 -30311163631E-116,
00231 +71803914657E292,
00232 +36314223356E-109,
00233 +18157111678E-109,
00234 -45392779195E-110,
00235 +778380362293E218,
00236 -685763015669E280,
00237 +952918668151E70,
00238 -548357443505E32,
00239 +384865004907E-285,
00240 -769730009814E-285,
00241 +697015418417E-93,
00242 -915654049301E-28,
00243 +178548656339E169,
00244 -742522891517E259,
00245 +742522891517E258,
00246 -357097312678E169,
00247 -3113521449172E218,
00248 +3891901811465E217,
00249 -1556760724586E218,
00250 +9997878507563E-195,
00251 -7247563029154E-319,
00252 +3623781514577E-319,
00253 -3092446298323E-200,
00254 +6363857920591E145,
00255 -8233559360849E94,
00256 +2689845954547E49,
00257 -5379691909094E49,
00258 +5560322501926E-301,
00259 -7812878489261E-179,
00260 +8439398533053E-256,
00261 -2780161250963E-301,
00262 -87605699161665E155,
00263 -17521139832333E156,
00264 -88218101363513E-170,
00265 +38639244311627E-115,
00266 +35593959807306E261,
00267 -53390939710959E260,
00268 +71187919614612E261,
00269 -88984899518265E260,
00270 +77003665618895E-73,
00271 -15400733123779E-72,
00272 +61602932495116E-72,
00273 -30801466247558E-72,
00274 +834735494917063E-300,
00275 -589795149206434E-151,
00276 +475603213226859E-42,
00277 -294897574603217E-151,
00278 +850813008001913E93,
00279 -203449172043339E185,
00280 +406898344086678E185,
00281 -813796688173356E185,
00282 +6045338514609393E244,
00283 -5145963778954906E142,
00284 +2572981889477453E142,
00285 -6965949469487146E74,
00286 +6182410494241627E-119,
00287 -8510309498186985E-277,
00288 +6647704637273331E-212,
00289 -2215901545757777E-212,
00290 +3771476185376383E276,
00291 -3729901848043846E212,
00292 +3771476185376383E277,
00293 -9977830465649166E119,
00294 +8439928496349319E-142,
00295 -8204230082070882E-59,
00296 +8853686434843997E-244,
00297 -5553274272288559E-104,
00298 +36149023611096162E144,
00299 -36149023611096162E147,
00300 +18074511805548081E146,
00301 -18074511805548081E147,
00302 +97338774138954421E-290,
00303 -88133809804950961E-308,
00304 +94080055902682397E-243,
00305 -24691002732654881E-115,
00306 +52306490527514614E49,
00307 -26153245263757307E49,
00308 +55188692254193604E165,
00309 -68985865317742005E164,
00310 +27176258005319167E-261,
00311 -73169230107256116E-248,
00312 +91461537634070145E-249,
00313 -54352516010638334E-261,
00314 +586144289638535878E280,
00315 -601117006785295431E245,
00316 +293072144819267939E280,
00317 -953184713238516652E272,
00318 +902042358290366539E-281,
00319 -557035730189854663E-294,
00320 +902042358290366539E-280,
00321 -354944100507554393E-238,
00322 +272104041512242479E199,
00323 -816312124536727437E199,
00324 +544208083024484958E199,
00325 -792644927852378159E78,
00326 -679406450132979175E-263,
00327 +543525160106383340E-262,
00328 +7400253695682920196E215,
00329 -1850063423920730049E215,
00330 +3700126847841460098E215,
00331 -9250317119603650245E214,
00332 +8396094300569779681E-252,
00333 -3507665085003296281E-75,
00334 +7015330170006592562E-75,
00335 -7015330170006592562E-74,
00336 +7185620434951919351E205,
00337 -1360520207561212395E198,
00338 +2178999185345151731E-184,
00339 -8691089486201567102E-218,
00340 +4345544743100783551E-218,
00341 -4357998370690303462E-184,
00342 +59825267349106892461E177,
00343 -62259110684423957791E47,
00344 +58380168477038565599E265,
00345 -62259110684423957791E48,
00346 -33584377202279118724E-252,
00347 -57484963479615354808E205,
00348 +71856204349519193510E204,
00349 -14371240869903838702E205,
00350 +36992084760177624177E-318,
00351 -73984169520355248354E-318,
00352 +99257763227713890244E-115,
00353 -87336362425182547697E-280,
00354 +7E289,
00355 -3E153,
00356 +6E153,
00357 -5E243,
00358 +7E-161,
00359 -7E-172,
00360 +8E-63,
00361 -7E-113,
00362 +8E126,
00363 -4E126,
00364 +5E125,
00365 -1E126,
00366 +8E-163,
00367 -1E-163,
00368 +2E-163,
00369 -4E-163,
00370 +51E195,
00371 -37E46,
00372 +74E46,
00373 -56E289,
00374 +69E-145,
00375 -70E-162,
00376 +56E-161,
00377 -21E-303,
00378 +34E-276,
00379 -68E-276,
00380 +85E-277,
00381 -87E-274,
00382 +829E102,
00383 -623E100,
00384 +723E-162,
00385 -457E-102,
00386 +914E-102,
00387 -323E-135,
00388 +151E176,
00389 -302E176,
00390 +921E90,
00391 -604E176,
00392 +823E-206,
00393 -463E-114,
00394 +348E-274,
00395 +9968E100,
00396 -6230E99,
00397 +1246E100,
00398 +6676E-296,
00399 -8345E-297,
00400 +1669E-296,
00401 -3338E-296,
00402 +3257E58,
00403 -6514E58,
00404 +2416E176,
00405 +8085E-63,
00406 -3234E-62,
00407 +1617E-62,
00408 -6468E-62,
00409 +53418E111,
00410 -60513E160,
00411 +26709E111,
00412 -99447E166,
00413 +12549E48,
00414 -25098E48,
00415 +50196E48,
00416 -62745E47,
00417 +83771E-73,
00418 -97451E-167,
00419 +86637E-203,
00420 -75569E-254,
00421 +473806E83,
00422 -947612E83,
00423 +292369E76,
00424 -584738E76,
00425 +933587E-140,
00426 -720919E-14,
00427 +535001E-149,
00428 -890521E-235,
00429 +548057E81,
00430 -706181E88,
00431 +820997E106,
00432 -320681E63,
00433 +928609E-261,
00434 -302276E-254,
00435 +151138E-254,
00436 +4691773E45,
00437 -9383546E45,
00438 +3059949E-243,
00439 -6119898E-243,
00440 +5356626E-213,
00441 -4877378E-199,
00442 +7716693E223,
00443 -5452869E109,
00444 +4590831E156,
00445 -9181662E156,
00446 -3714436E-261,
00447 +4643045E-262,
00448 -7428872E-261,
00449 +52942146E130,
00450 -27966061E145,
00451 +26471073E130,
00452 -55932122E145,
00453 +95412548E-99,
00454 -47706274E-99,
00455 +23853137E-99,
00456 -78493654E-301,
00457 +65346417E29,
00458 -51083099E167,
00459 +89396333E264,
00460 -84863171E114,
00461 +59540836E-251,
00462 -74426045E-252,
00463 +14885209E-251,
00464 -29770418E-251,
00465 +982161308E122,
00466 -245540327E122,
00467 +491080654E122,
00468 +525452622E-310,
00469 -771837113E-134,
00470 +820858081E-150,
00471 -262726311E-310,
00472 +923091487E209,
00473 -653777767E273,
00474 +842116236E-53,
00475 -741111169E-202,
00476 +839507247E-284,
00477 -951487269E-264,
00478 -9821613080E121,
00479 +6677856011E-31,
00480 -3573796826E-266,
00481 +7147593652E-266,
00482 -9981396317E-181,
00483 +3268888835E272,
00484 -2615111068E273,
00485 +1307555534E273,
00486 +2990671154E-190,
00487 -1495335577E-190,
00488 +5981342308E-190,
00489 -7476677885E-191,
00490 +82259684194E-202,
00491 -93227267727E-49,
00492 +41129842097E-202,
00493 -47584241418E-314,
00494 -79360293406E92,
00495 +57332259349E225,
00496 -57202326162E111,
00497 +86860597053E-206,
00498 -53827010643E-200,
00499 +53587107423E-61,
00500 +635007636765E200,
00501 +508006109412E201,
00502 -254003054706E201,
00503 +561029718715E-72,
00504 -897647549944E-71,
00505 +112205943743E-71,
00506 -873947086081E-236,
00507 +809184709177E116,
00508 -573112917422E81,
00509 +286556458711E81,
00510 +952805821491E-259,
00511 -132189992873E-44,
00512 -173696038493E-144,
00513 +1831132757599E-107,
00514 -9155663787995E-108,
00515 +7324531030396E-107,
00516 -9277338894969E-200,
00517 +8188292423973E287,
00518 -5672557437938E59,
00519 +2836278718969E59,
00520 -9995153153494E54,
00521 +9224786422069E-291,
00522 -3142213164987E-294,
00523 +6284426329974E-294,
00524 -8340483752889E-301,
00525 +67039371486466E89,
00526 -62150786615239E197,
00527 +33519685743233E89,
00528 -52563419496999E156,
00529 +32599460466991E-65,
00530 -41010988798007E-133,
00531 +65198920933982E-65,
00532 -82021977596014E-133,
00533 +80527976643809E61,
00534 -74712611505209E158,
00535 +53390939710959E261,
00536 -69277302659155E225,
00537 +46202199371337E-72,
00538 -23438635467783E-179,
00539 +41921560615349E-67,
00540 -92404398742674E-72,
00541 +738545606647197E124,
00542 -972708181182949E117,
00543 -837992143580825E87,
00544 +609610927149051E-255,
00545 -475603213226859E-41,
00546 +563002800671023E-177,
00547 -951206426453718E-41,
00548 +805416432656519E202,
00549 -530658674694337E159,
00550 +946574173863918E208,
00551 -318329953318553E113,
00552 -462021993713370E-73,
00553 +369617594970696E-72,
00554 +3666156212014994E233,
00555 -1833078106007497E233,
00556 +8301790508624232E174,
00557 -1037723813578029E174,
00558 +7297662880581139E-286,
00559 -5106185698912191E-276,
00560 +7487252720986826E-165,
00561 -3743626360493413E-165,
00562 +3773057430100257E230,
00563 -7546114860200514E230,
00564 +4321222892463822E58,
00565 -7793560217139653E51,
00566 +26525993941010681E112,
00567 -53051987882021362E112,
00568 +72844871414247907E77,
00569 -88839359596763261E105,
00570 +18718131802467065E-166,
00571 -14974505441973652E-165,
00572 +73429396004640239E106,
00573 -58483921078398283E57,
00574 +41391519190645203E165,
00575 -82783038381290406E165,
00576 +58767043776702677E-163,
00577 -90506231831231999E-129,
00578 +64409240769861689E-159,
00579 -77305427432277771E-190,
00580 +476592356619258326E273,
00581 -953184713238516652E273,
00582 +899810892172646163E283,
00583 -929167076892018333E187,
00584 +647761278967534239E-312,
00585 -644290479820542942E-180,
00586 +926145344610700019E-225,
00587 -958507931896511964E-246,
00588 +272104041512242479E200,
00589 -792644927852378159E79,
00590 +544208083024484958E200,
00591 -929963218616126365E290,
00592 +305574339166810102E-219,
00593 -152787169583405051E-219,
00594 +611148678333620204E-219,
00595 -763935847917025255E-220,
00596 +7439550220920798612E158,
00597 -3719775110460399306E158,
00598 +9299437776150998265E157,
00599 -7120190517612959703E120,
00600 +3507665085003296281E-73,
00601 -7015330170006592562E-73,
00602 -6684428762278255956E-294,
00603 -1088416166048969916E200,
00604 -8707329328391759328E200,
00605 +4439021781608558002E-65,
00606 -8878043563217116004E-65,
00607 +2219510890804279001E-65,
00608 +33051223951904955802E55,
00609 -56961524140903677624E120,
00610 +71201905176129597030E119,
00611 +14030660340013185124E-73,
00612 -17538325425016481405E-74,
00613 +67536228609141569109E-133,
00614 -35620497849450218807E-306,
00615 +66550376797582521751E-126,
00616 -71240995698900437614E-306,
00617 +3E24,
00618 -6E24,
00619 +6E26,
00620 -7E25,
00621 +1E-14,
00622 -2E-14,
00623 +4E-14,
00624 -8E-14,
00625 +5E26,
00626 -8E27,
00627 +1E27,
00628 -4E27,
00629 +9E-13,
00630 -7E-20,
00631 +56E25,
00632 -70E24,
00633 +51E26,
00634 +71E-17,
00635 -31E-5,
00636 +62E-5,
00637 -94E-8,
00638 +67E27,
00639 -81E24,
00640 +54E23,
00641 -54E25,
00642 +63E-22,
00643 -63E-23,
00644 +43E-4,
00645 -86E-4,
00646 +942E26,
00647 -471E25,
00648 +803E24,
00649 -471E26,
00650 -409E-21,
00651 +818E-21,
00652 -867E-8,
00653 +538E27,
00654 -857E24,
00655 +269E27,
00656 -403E26,
00657 +959E-7,
00658 -959E-6,
00659 +373E-27,
00660 -746E-27,
00661 +4069E24,
00662 -4069E23,
00663 -8138E24,
00664 +8294E-15,
00665 -4147E-14,
00666 +4147E-15,
00667 -8294E-14,
00668 +538E27,
00669 -2690E26,
00670 +269E27,
00671 -2152E27,
00672 +1721E-17,
00673 -7979E-27,
00674 +6884E-17,
00675 -8605E-18,
00676 +82854E27,
00677 -55684E24,
00678 +27842E24,
00679 -48959E25,
00680 +81921E-17,
00681 -76207E-8,
00682 +4147E-15,
00683 -41470E-16,
00684 +89309E24,
00685 +75859E26,
00686 -75859E25,
00687 +14257E-23,
00688 -28514E-23,
00689 +57028E-23,
00690 -71285E-24,
00691 +344863E27,
00692 -951735E27,
00693 +200677E23,
00694 -401354E24,
00695 +839604E-11,
00696 -209901E-11,
00697 +419802E-11,
00698 -537734E-24,
00699 +910308E26,
00700 -227577E26,
00701 +455154E26,
00702 -531013E25,
00703 +963019E-21,
00704 -519827E-13,
00705 +623402E-27,
00706 -311701E-27,
00707 +9613651E26,
00708 -9191316E23,
00709 +4595658E23,
00710 -2297829E23,
00711 -1679208E-11,
00712 +3379223E27,
00713 -6758446E27,
00714 +5444097E-21,
00715 -8399969E-27,
00716 +8366487E-16,
00717 -8366487E-15,
00718 +65060671E25,
00719 +65212389E23,
00720 +55544957E-13,
00721 -51040905E-20,
00722 +99585767E-22,
00723 -99585767E-23,
00724 +40978393E26,
00725 -67488159E24,
00726 +69005339E23,
00727 -81956786E26,
00728 -87105552E-21,
00729 +10888194E-21,
00730 -21776388E-21,
00731 +635806667E27,
00732 -670026614E25,
00733 +335013307E26,
00734 -335013307E25,
00735 +371790617E-24,
00736 -371790617E-25,
00737 +743581234E-24,
00738 -743581234E-25,
00739 +202464477E24,
00740 -404928954E24,
00741 +997853758E27,
00742 -997853758E26,
00743 +405498418E-17,
00744 -582579084E-14,
00745 +608247627E-18,
00746 -291289542E-14,
00747 -9537100005E26,
00748 +6358066670E27,
00749 -1271613334E27,
00750 +5229646999E-16,
00751 +5229646999E-17,
00752 +4429943614E24,
00753 -8859887228E24,
00754 +2214971807E24,
00755 -4176887093E26,
00756 +4003495257E-20,
00757 -4361901637E-23,
00758 +8723803274E-23,
00759 -8006990514E-20,
00760 +72835110098E27,
00761 -36417555049E27,
00762 +84279630104E25,
00763 -84279630104E24,
00764 +21206176437E-27,
00765 -66461566917E-22,
00766 +64808355539E-16,
00767 -84932679673E-19,
00768 +65205430094E26,
00769 -68384463429E25,
00770 +32602715047E26,
00771 -62662203426E27,
00772 +58784444678E-18,
00773 -50980203373E-21,
00774 +29392222339E-18,
00775 -75529940323E-27,
00776 -937495906299E26,
00777 +842642485799E-20,
00778 -387824150699E-23,
00779 +924948814726E-27,
00780 -775648301398E-23,
00781 +547075707432E25,
00782 +683844634290E24,
00783 -136768926858E25,
00784 +509802033730E-22,
00785 +101960406746E-21,
00786 -815683253968E-21,
00787 +7344124123524E24,
00788 -9180155154405E23,
00789 +6479463327323E27,
00790 -1836031030881E24,
00791 +4337269293039E-19,
00792 -4599163554373E-23,
00793 +9198327108746E-23,
00794 +4812803938347E27,
00795 -8412030890011E23,
00796 +9625607876694E27,
00797 -4739968828249E24,
00798 +9697183891673E-23,
00799 -7368108517543E-20,
00800 +51461358161422E25,
00801 -77192037242133E26,
00802 +77192037242133E25,
00803 -51461358161422E27,
00804 +43999661561541E-21,
00805 -87999323123082E-21,
00806 +48374886826137E-26,
00807 -57684246567111E-23,
00808 +87192805957686E23,
00809 -75108713005913E24,
00810 +64233110587487E27,
00811 -77577471133384E-23,
00812 +48485919458365E-24,
00813 -56908598265713E-26,
00814 +589722294620133E23,
00815 +652835804449289E-22,
00816 -656415363936202E-23,
00817 +579336749585745E-25,
00818 -381292764980839E-26,
00819 +965265859649698E23,
00820 -848925235434882E27,
00821 +536177612222491E23,
00822 -424462617717441E27,
00823 +276009279888989E-27,
00824 -608927158043691E-26,
00825 +552018559777978E-27,
00826 -425678377667758E-22,
00827 +8013702726927119E26,
00828 +8862627962362001E27,
00829 -5068007907757162E26,
00830 -7379714799828406E-23,
00831 +4114538064016107E-27,
00832 -3689857399914203E-23,
00833 +5575954851815478E23,
00834 +3395700941739528E27,
00835 +4115535777581961E-23,
00836 -8231071555163922E-23,
00837 +6550246696190871E-26,
00838 -68083046403986701E27,
00839 +43566388595783643E27,
00840 -87132777191567286E27,
00841 +59644881059342141E25,
00842 -83852770718576667E23,
00843 +99482967418206961E-25,
00844 -99482967418206961E-26,
00845 +87446669969994614E-27,
00846 -43723334984997307E-27,
00847 +5E24,
00848 -8E25,
00849 +1E25,
00850 -4E25,
00851 +2E-5,
00852 -5E-6,
00853 +4E-5,
00854 -3E-20,
00855 +3E27,
00856 -9E26,
00857 +7E25,
00858 -6E27,
00859 +2E-21,
00860 -5E-22,
00861 -4E-21,
00862 +87E25,
00863 -97E24,
00864 +82E-24,
00865 -41E-24,
00866 +76E-23,
00867 +83E25,
00868 -50E27,
00869 +25E27,
00870 -99E27,
00871 +97E-10,
00872 -57E-20,
00873 +997E23,
00874 +776E24,
00875 -388E24,
00876 +521E-10,
00877 -506E-26,
00878 +739E-10,
00879 -867E-7,
00880 -415E24,
00881 +332E25,
00882 -664E25,
00883 +291E-13,
00884 -982E-8,
00885 +582E-13,
00886 -491E-8,
00887 +4574E26,
00888 -8609E26,
00889 +2287E26,
00890 -4818E24,
00891 +6529E-8,
00892 -8151E-21,
00893 +1557E-12,
00894 -2573E-18,
00895 +4929E-16,
00896 -3053E-22,
00897 +9858E-16,
00898 -7767E-11,
00899 +54339E26,
00900 -62409E25,
00901 +32819E27,
00902 -89849E27,
00903 +63876E-20,
00904 -15969E-20,
00905 +31938E-20,
00906 -79845E-21,
00907 +89306E27,
00908 -25487E24,
00909 +79889E24,
00910 -97379E26,
00911 +81002E-8,
00912 -43149E-25,
00913 +40501E-8,
00914 -60318E-10,
00915 -648299E27,
00916 +780649E24,
00917 +720919E-14,
00918 -629703E-11,
00919 +557913E24,
00920 -847899E23,
00921 +565445E27,
00922 -736531E24,
00923 +680013E-19,
00924 -529981E-10,
00925 +382923E-23,
00926 -633614E-18,
00927 +2165479E27,
00928 -8661916E27,
00929 +4330958E27,
00930 -9391993E22,
00931 -5767352E-14,
00932 +7209190E-15,
00933 -1441838E-14,
00934 +8478990E22,
00935 +1473062E24,
00936 +8366487E-14,
00937 -8399969E-25,
00938 +9366737E-12,
00939 -9406141E-13,
00940 +65970979E24,
00941 -65060671E26,
00942 +54923002E27,
00943 -63846927E25,
00944 +99585767E-21,
00945 +67488159E25,
00946 -69005339E24,
00947 +81956786E27,
00948 -40978393E27,
00949 +77505754E-12,
00950 -38752877E-12,
00951 +82772981E-15,
00952 -95593517E-25,
00953 +200036989E25,
00954 -772686455E27,
00955 +859139907E23,
00956 -400073978E25,
00957 +569014327E-14,
00958 -794263862E-15,
00959 +397131931E-15,
00960 -380398957E-16,
00961 +567366773E27,
00962 -337440795E24,
00963 +134976318E25,
00964 -269952636E25,
00965 +932080597E-20,
00966 -331091924E-15,
00967 -413864905E-16,
00968 +8539246247E26,
00969 -5859139791E26,
00970 +6105010149E24,
00971 -3090745820E27,
00972 +3470877773E-20,
00973 -6136309089E-27,
00974 +8917758713E-19,
00975 -6941755546E-20,
00976 +9194900535E25,
00977 -1838980107E26,
00978 +7355920428E26,
00979 -3677960214E26,
00980 +8473634343E-17,
00981 -8870766274E-16,
00982 +4435383137E-16,
00983 -9598990129E-15,
00984 +71563496764E26,
00985 -89454370955E25,
00986 +17890874191E26,
00987 -35781748382E26,
00988 +57973447842E-19,
00989 -28986723921E-19,
00990 +76822711313E-19,
00991 -97699466874E-20,
00992 +67748656762E27,
00993 -19394840991E24,
00994 +38789681982E24,
00995 -33874328381E27,
00996 +54323763886E-27,
00997 -58987193887E-20,
00998 +27161881943E-27,
00999 -93042648033E-19,
01000 +520831059055E27,
01001 -768124264394E25,
01002 +384062132197E25,
01003 +765337749889E-25,
01004 +794368912771E25,
01005 -994162090146E23,
01006 +781652779431E26,
01007 +910077190046E-26,
01008 -455038595023E-26,
01009 +471897551096E-20,
01010 -906698409911E-21,
01011 +8854128003935E25,
01012 -8146122716299E27,
01013 +7083302403148E26,
01014 -3541651201574E26,
01015 +8394920649291E-25,
01016 -7657975756753E-22,
01017 +5473834002228E-20,
01018 -6842292502785E-21,
01019 -2109568884597E25,
01020 +8438275538388E25,
01021 -4219137769194E25,
01022 +3200141789841E-25,
01023 -8655689322607E-22,
01024 +6400283579682E-25,
01025 -8837719634493E-21,
01026 +19428217075297E24,
01027 -38856434150594E24,
01028 +77712868301188E24,
01029 -77192037242133E27,
01030 +76579757567530E-23,
01031 +15315951513506E-22,
01032 -38289878783765E-23,
01033 +49378033925202E25,
01034 -50940527102367E24,
01035 +98756067850404E25,
01036 -99589397544892E26,
01037 -56908598265713E-25,
01038 +97470695699657E-22,
01039 -35851901247343E-25,
01040 +154384074484266E27,
01041 -308768148968532E27,
01042 +910990389005985E23,
01043 +271742424169201E-27,
01044 -543484848338402E-27,
01045 +162192083357563E-26,
01046 -869254552770081E-23,
01047 +664831007626046E24,
01048 -332415503813023E24,
01049 +943701829041427E24,
01050 -101881054204734E24,
01051 +828027839666967E-27,
01052 -280276135608777E-27,
01053 +212839188833879E-21,
01054 -113817196531426E-25,
01055 +9711553197796883E27,
01056 -2739849386524269E26,
01057 +5479698773048538E26,
01058 +6124568318523113E-25,
01059 -1139777988171071E-24,
01060 +6322612303128019E-27,
01061 -2955864564844617E-25,
01062 -9994029144998961E25,
01063 -2971238324022087E27,
01064 -1656055679333934E-27,
01065 -1445488709150234E-26,
01066 +55824717499885172E27,
01067 -69780896874856465E26,
01068 +84161538867545199E25,
01069 -27912358749942586E27,
01070 +24711112462926331E-25,
01071 -12645224606256038E-27,
01072 -12249136637046226E-25,
01073 +74874448287465757E27,
01074 -35642836832753303E24,
01075 -71285673665506606E24,
01076 +43723334984997307E-26,
01077 +10182419849537963E-24,
01078 -93501703572661982E-26,
01079 )
01080 models.extend(map(lambda x: (str(x[0]), x[1]), enumerate(tcl_suite)))
01081 for (name, value) in models:
01082 create(name, value)
01083 self.project.CommitTransaction()
01084
01085 self.project.Save(self.connstr)
01086 self.territory.Destroy()
01087 self.project.Close()
01088
01089 self.project = DispatchEx('Mga.MgaProject')
01090 self.project.Open(self.connstr)
01091 xme = _adjacent_file('testXME.xme')
01092 dumper = DispatchEx("Mga.MgaDumper")
01093 dumper.DumpProject(self.project, xme)
01094 self.project.Close()
01095
01096 self.setUp()
01097 self.project = GPyUnit.util.parse_xme(self.connstr, xme=xme)
01098
01099
01100
01101
01102 self.territory = self.project.BeginTransactionInNewTerr()
01103 for (name, value) in models:
01104 stored = self.project.ObjectByPath(name).GetAttributeByNameDisp('d')
01105 if value != value:
01106 self.assertNotEqual(stored, stored)
01107 else:
01108 self.assertEqual(stored, value)
01109 self.project.CommitTransaction()
01110 self.project.Save()
01111 self.project.Close()
01112
01113
01114 @property
01115 def connstr(self):
01116 return "MGA=" + _adjacent_file("parsertest.mga")
01117
01118 GPyUnit.util.MUGenerator(globals(), TestFloatingPoint)
01119
01120 if __name__ == "__main__":
01121 import sys
01122 runner = unittest.TextTestRunner()
01123 runner.run(unittest.defaultTestLoader.loadTestsFromNames(('__main__',)))
01124
01125
01126