ConversionTest.cs 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674
  1. // Collection.cs - NUnit Test Cases for Microsoft.VisualBasic.Collection
  2. //
  3. // Author:
  4. // Chris J. Breisch ([email protected])
  5. //
  6. // (C) Chris J. Breisch
  7. //
  8. using NUnit.Framework;
  9. using System;
  10. using Microsoft.VisualBasic;
  11. namespace MonoTests.Microsoft.VisualBasic
  12. {
  13. public class ConversionTest : TestCase
  14. {
  15. public ConversionTest() : base ("Microsoft.VisualBasic.Conversion") {}
  16. public ConversionTest(string name) : base(name) {}
  17. protected override void SetUp() {}
  18. protected override void TearDown() {}
  19. public static ITest Suite {
  20. get {
  21. return new TestSuite(typeof(ConversionTest));
  22. }
  23. }
  24. public void TestErrorToStringEmpty() {
  25. // FIXME : Do something here, but write the ErrorToString code first :-)
  26. }
  27. public void TestErrorToStringNumber() {
  28. // FIXME : Do something here, but write the ErrorToString code first :-)
  29. }
  30. // Test the Fix function
  31. public void TestFix() {
  32. System.Single Sng;
  33. System.Double Dbl;
  34. System.Decimal Dec;
  35. System.String S;
  36. System.Object O;
  37. AssertEquals("#F01", System.Int16.MaxValue, Conversion.Fix(System.Int16.MaxValue));
  38. AssertEquals("#F02", System.Int16.MinValue, Conversion.Fix(System.Int16.MinValue));
  39. AssertEquals("#F03", System.Int32.MaxValue, Conversion.Fix(System.Int32.MaxValue));
  40. AssertEquals("#F04", System.Int32.MinValue, Conversion.Fix(System.Int32.MinValue));
  41. AssertEquals("#F05", System.Int64.MaxValue, Conversion.Fix(System.Int64.MaxValue));
  42. AssertEquals("#F06", System.Int64.MinValue, Conversion.Fix(System.Int64.MinValue));
  43. AssertEquals("#F07", (System.Single)Math.Floor(System.Single.MaxValue), Conversion.Fix(System.Single.MaxValue));
  44. AssertEquals("#F08", -1 * (System.Single)Math.Floor(-1 * System.Single.MinValue), Conversion.Fix(System.Single.MinValue));
  45. AssertEquals("#F09", Math.Floor(System.Double.MaxValue), Conversion.Fix(System.Double.MaxValue));
  46. AssertEquals("#F10", -1 * Math.Floor(-1 * System.Double.MinValue), Conversion.Fix(System.Double.MinValue));
  47. AssertEquals("#F11", Decimal.Floor(System.Decimal.MaxValue), Conversion.Fix(System.Decimal.MaxValue));
  48. AssertEquals("#F12", -1 * Decimal.Floor(-1 * System.Decimal.MinValue), Conversion.Fix(System.Decimal.MinValue));
  49. Sng = 99.1F;
  50. AssertEquals("#F13", 99F, Conversion.Fix(Sng));
  51. Sng = 99.6F;
  52. AssertEquals("#F14", 99F, Conversion.Fix(Sng));
  53. Sng = -99.1F;
  54. AssertEquals("#F15", -99F, Conversion.Fix(Sng));
  55. Sng = -99.6F;
  56. AssertEquals("#F16", -99F, Conversion.Fix(Sng));
  57. Dbl = 99.1;
  58. AssertEquals("#F17", 99D, Conversion.Fix(Dbl));
  59. Dbl = 99.6;
  60. AssertEquals("#F18", 99D, Conversion.Fix(Dbl));
  61. Dbl = -99.1;
  62. AssertEquals("#F19", -99D, Conversion.Fix(Dbl));
  63. Dbl = -99.6;
  64. AssertEquals("#F20", -99D, Conversion.Fix(Dbl));
  65. Dec = 99.1M;
  66. AssertEquals("#F21", 99M, Conversion.Fix(Dec));
  67. Dec = 99.6M;
  68. AssertEquals("#F22", 99M, Conversion.Fix(Dec));
  69. Dec = -99.1M;
  70. AssertEquals("#F23", -99M, Conversion.Fix(Dec));
  71. Dec = -99.6M;
  72. AssertEquals("#F24", -99M, Conversion.Fix(Dec));
  73. Dbl = 99.1;
  74. S = Dbl.ToString();
  75. AssertEquals("#F25", 99D, Conversion.Fix(S));
  76. Dbl = 99.6;
  77. S = Dbl.ToString();
  78. AssertEquals("#F26", 99D, Conversion.Fix(S));
  79. Dbl = -99.1;
  80. S = Dbl.ToString();
  81. AssertEquals("#F27", -99D, Conversion.Fix(S));
  82. Dbl = -99.6;
  83. S = Dbl.ToString();
  84. AssertEquals("#F28", -99D, Conversion.Fix(S));
  85. Dbl = 99.1;
  86. O = Dbl;
  87. AssertEquals("#F29", 99D, Conversion.Fix(O));
  88. Sng = 99.6F;
  89. O = Sng;
  90. AssertEquals("#F30", (System.Object)99F, Conversion.Fix(O));
  91. Dbl = -99.1;
  92. O = Dbl;
  93. AssertEquals("#F31", -99D, Conversion.Fix(O));
  94. Dec = -99.6M;
  95. O = Dec;
  96. AssertEquals("#F32", (System.Object)(-99M), Conversion.Fix(O));
  97. O = typeof(int);
  98. // test for Exceptions
  99. bool CaughtException = false;
  100. try {
  101. Conversion.Fix(O);
  102. }
  103. catch (Exception e) {
  104. AssertEquals("#F33", typeof(ArgumentException), e.GetType());
  105. CaughtException = true;
  106. }
  107. AssertEquals("#F34", true, CaughtException);
  108. CaughtException = false;
  109. try {
  110. Conversion.Fix(null);
  111. }
  112. catch (Exception e) {
  113. AssertEquals("#F35", typeof(ArgumentNullException), e.GetType());
  114. CaughtException = true;
  115. }
  116. AssertEquals("#F36", true, CaughtException);
  117. }
  118. // Test the Int function
  119. public void TestInt() {
  120. System.Single Sng;
  121. System.Double Dbl;
  122. System.Decimal Dec;
  123. System.String S;
  124. System.Object O;
  125. AssertEquals("#I01", System.Int16.MaxValue, Conversion.Int(System.Int16.MaxValue));
  126. AssertEquals("#I02", System.Int16.MinValue, Conversion.Int(System.Int16.MinValue));
  127. AssertEquals("#I03", System.Int32.MaxValue, Conversion.Int(System.Int32.MaxValue));
  128. AssertEquals("#I04", System.Int32.MinValue, Conversion.Int(System.Int32.MinValue));
  129. AssertEquals("#I05", System.Int64.MaxValue, Conversion.Int(System.Int64.MaxValue));
  130. AssertEquals("#I06", System.Int64.MinValue, Conversion.Int(System.Int64.MinValue));
  131. AssertEquals("#I07", (System.Single)Math.Floor(System.Single.MaxValue), Conversion.Int(System.Single.MaxValue));
  132. AssertEquals("#I08", (System.Single)Math.Floor(System.Single.MinValue), Conversion.Int(System.Single.MinValue));
  133. AssertEquals("#I09", Math.Floor(System.Double.MaxValue), Conversion.Int(System.Double.MaxValue));
  134. AssertEquals("#I10", Math.Floor(System.Double.MinValue), Conversion.Int(System.Double.MinValue));
  135. AssertEquals("#I11", Decimal.Floor(System.Decimal.MaxValue), Conversion.Int(System.Decimal.MaxValue));
  136. AssertEquals("#I12", Decimal.Floor(System.Decimal.MinValue), Conversion.Int(System.Decimal.MinValue));
  137. Sng = 99.1F;
  138. AssertEquals("#I13", 99F, Conversion.Int(Sng));
  139. Sng = 99.6F;
  140. AssertEquals("#I14", 99F, Conversion.Int(Sng));
  141. Sng = -99.1F;
  142. AssertEquals("#I15", -100F, Conversion.Int(Sng));
  143. Sng = -99.6F;
  144. AssertEquals("#I16", -100F, Conversion.Int(Sng));
  145. Dbl = 99.1;
  146. AssertEquals("#I17", 99D, Conversion.Int(Dbl));
  147. Dbl = 99.6;
  148. AssertEquals("#I18", 99D, Conversion.Int(Dbl));
  149. Dbl = -99.1;
  150. AssertEquals("#I19", -100D, Conversion.Int(Dbl));
  151. Dbl = -99.6;
  152. AssertEquals("#I20", -100D, Conversion.Int(Dbl));
  153. Dec = 99.1M;
  154. AssertEquals("#I21", 99M, Conversion.Int(Dec));
  155. Dec = 99.6M;
  156. AssertEquals("#I22", 99M, Conversion.Int(Dec));
  157. Dec = -99.1M;
  158. AssertEquals("#I23", -100M, Conversion.Int(Dec));
  159. Dec = -99.6M;
  160. AssertEquals("#I24", -100M, Conversion.Int(Dec));
  161. Dbl = 99.1;
  162. S = Dbl.ToString();
  163. AssertEquals("#I25", 99D, Conversion.Int(S));
  164. Dbl = 99.6;
  165. S = Dbl.ToString();
  166. AssertEquals("#I26", 99D, Conversion.Int(S));
  167. Dbl = -99.1;
  168. S = Dbl.ToString();
  169. AssertEquals("#I27", -100D, Conversion.Int(S));
  170. Dbl = -99.6;
  171. S = Dbl.ToString();
  172. AssertEquals("#I28", -100D, Conversion.Int(S));
  173. Dbl = 99.1;
  174. O = Dbl;
  175. AssertEquals("#I29", 99D, Conversion.Int(O));
  176. Sng = 99.6F;
  177. O = Sng;
  178. AssertEquals("#I30", 99F, Conversion.Int(O));
  179. Dbl = -99.1;
  180. O = Dbl;
  181. AssertEquals("#I31", -100D, Conversion.Int(O));
  182. Dec = -99.6M;
  183. O = Dec;
  184. AssertEquals("#I32", -100M, Conversion.Int(O));
  185. // test the exceptions it's supposed to throw
  186. O = typeof(int);
  187. bool CaughtException = false;
  188. try {
  189. Conversion.Fix(O);
  190. }
  191. catch (Exception e) {
  192. AssertEquals("#I33", typeof(ArgumentException), e.GetType());
  193. CaughtException = true;
  194. }
  195. AssertEquals("#I34", true, CaughtException);
  196. CaughtException = false;
  197. try {
  198. Conversion.Int(null);
  199. }
  200. catch (Exception e) {
  201. AssertEquals("#I35", typeof(ArgumentNullException), e.GetType());
  202. CaughtException = true;
  203. }
  204. AssertEquals("#I36", true, CaughtException);
  205. }
  206. // test the Hex function
  207. public void TestHex() {
  208. AssertEquals("#H01", "FF", Conversion.Hex(System.Byte.MaxValue));
  209. AssertEquals("#H02", "0", Conversion.Hex(System.Byte.MinValue));
  210. AssertEquals("#H03", "7FFF", Conversion.Hex(System.Int16.MaxValue));
  211. AssertEquals("#H04", "8000", Conversion.Hex(System.Int16.MinValue));
  212. AssertEquals("#H05", "7FFFFFFF", Conversion.Hex(System.Int32.MaxValue));
  213. AssertEquals("#H06", "80000000", Conversion.Hex(System.Int32.MinValue));
  214. AssertEquals("#H07", "7FFFFFFFFFFFFFFF", Conversion.Hex(System.Int64.MaxValue));
  215. AssertEquals("#H08", "8000000000000000", Conversion.Hex(System.Int64.MinValue));
  216. System.Byte UI8;
  217. System.Int16 I16;
  218. System.Int32 I32;
  219. System.Int64 I64;
  220. System.Object O;
  221. System.String S;
  222. UI8 = 15;
  223. AssertEquals("#H09", "F", Conversion.Hex(UI8));
  224. I16 = System.Byte.MaxValue;
  225. AssertEquals("#H10", "FF", Conversion.Hex(I16));
  226. I16 = (System.Int16)((I16 + 1) * -1);
  227. AssertEquals("#H11", "FF00", Conversion.Hex(I16));
  228. I16 = -2;
  229. AssertEquals("#H12", "FFFE", Conversion.Hex(I16));
  230. I32 = System.UInt16.MaxValue;
  231. AssertEquals("#H13", "FFFF", Conversion.Hex(I32));
  232. I32 = (I32 + 1) * -1;
  233. AssertEquals("#H14", "FFFF0000", Conversion.Hex(I32));
  234. I32 = -2;
  235. AssertEquals("#H15", "FFFFFFFE", Conversion.Hex(I32));
  236. I64 = System.UInt32.MaxValue;
  237. AssertEquals("#H16", "FFFFFFFF", Conversion.Hex(I64));
  238. I64 = (I64 + 1) * -1;
  239. AssertEquals("#H17", "FFFFFFFF00000000", Conversion.Hex(I64));
  240. I64 = -2;
  241. AssertEquals("#H18", "FFFFFFFFFFFFFFFE", Conversion.Hex(I64));
  242. I16 = System.Byte.MaxValue;
  243. S = I16.ToString();
  244. AssertEquals("#H19", "FF", Conversion.Hex(S));
  245. I16 = (System.Int16)((I16 + 1) * -1);
  246. S = I16.ToString();
  247. AssertEquals("#H20", "FFFFFF00", Conversion.Hex(S));
  248. I16 = -1;
  249. S = I16.ToString();
  250. AssertEquals("#H21", "FFFFFFFF", Conversion.Hex(S));
  251. I32 = System.UInt16.MaxValue;
  252. S = I32.ToString();
  253. AssertEquals("#H22", "FFFF", Conversion.Hex(S));
  254. I32 = (I32 + 1) * -1;
  255. S = I32.ToString();
  256. AssertEquals("#H23", "FFFF0000", Conversion.Hex(S));
  257. I32 = -2;
  258. S = I32.ToString();
  259. AssertEquals("#H24", "FFFFFFFE", Conversion.Hex(S));
  260. I64 = System.UInt32.MaxValue;
  261. S = I64.ToString();
  262. AssertEquals("#H25", "FFFFFFFF", Conversion.Hex(S));
  263. I64 = (I64 + 1) * -1;
  264. S = I64.ToString();
  265. AssertEquals("#H26", "FFFFFFFF00000000", Conversion.Hex(S));
  266. UI8 = System.Byte.MaxValue;
  267. O = UI8;
  268. AssertEquals("#H27", "FF", Conversion.Hex(O));
  269. I16 = System.Byte.MaxValue;
  270. O = I16;
  271. AssertEquals("#H28", "FF", Conversion.Hex(O));
  272. I16 = (System.Int16)((I16 + 1) * -1);
  273. O = I16;
  274. AssertEquals("#H29", "FF00", Conversion.Hex(O));
  275. I16 = -2;
  276. O = I16;
  277. AssertEquals("#H30", "FFFE", Conversion.Hex(O));
  278. I32 = System.UInt16.MaxValue;
  279. O = I32;
  280. AssertEquals("#H31", "FFFF", Conversion.Hex(O));
  281. I32 = (I32 + 1) * -1;
  282. O = I32;
  283. AssertEquals("#H32", "FFFF0000", Conversion.Hex(O));
  284. I32 = -2;
  285. O = I32;
  286. AssertEquals("#H33", "FFFFFFFE", Conversion.Hex(O));
  287. I64 = System.UInt32.MaxValue;
  288. O = I64;
  289. AssertEquals("#H34", "FFFFFFFF", Conversion.Hex(O));
  290. I64 = (I64 + 1) * -1;
  291. O = I64;
  292. AssertEquals("#H35", "FFFFFFFF00000000", Conversion.Hex(O));
  293. I64 = -2;
  294. O = I64;
  295. // FIXME : MS doesn't pass this test
  296. //AssertEquals("#H35", "FFFFFFFFFFFFFFFE", Conversion.Hex(O));
  297. O = typeof(int);
  298. bool CaughtException = false;
  299. try {
  300. Conversion.Hex(O);
  301. }
  302. catch (Exception e) {
  303. AssertEquals("#H36", typeof(ArgumentException), e.GetType());
  304. CaughtException = true;
  305. }
  306. AssertEquals("#H37", true, CaughtException);
  307. CaughtException = false;
  308. try {
  309. Conversion.Hex(null);
  310. }
  311. catch (Exception e) {
  312. AssertEquals("#H38", typeof(ArgumentNullException), e.GetType());
  313. CaughtException = true;
  314. }
  315. AssertEquals("#H39", true, CaughtException);
  316. }
  317. // test the Oct function
  318. public void TestOct() {
  319. AssertEquals("#O01", "377", Conversion.Oct(System.Byte.MaxValue));
  320. AssertEquals("#O02", "0", Conversion.Oct(System.Byte.MinValue));
  321. AssertEquals("#O03", "77777", Conversion.Oct(System.Int16.MaxValue));
  322. AssertEquals("#O04", "100000", Conversion.Oct(System.Int16.MinValue));
  323. AssertEquals("#O05", "17777777777", Conversion.Oct(System.Int32.MaxValue));
  324. AssertEquals("#O06", "20000000000", Conversion.Oct(System.Int32.MinValue));
  325. AssertEquals("#O07", "777777777777777777777", Conversion.Oct(System.Int64.MaxValue));
  326. AssertEquals("#O08", "1000000000000000000000", Conversion.Oct(System.Int64.MinValue));
  327. System.Byte UI8;
  328. System.Int16 I16;
  329. System.Int32 I32;
  330. System.Int64 I64;
  331. System.Object O;
  332. System.String S;
  333. UI8 = 15;
  334. AssertEquals("#O09", "17", Conversion.Oct(UI8));
  335. I16 = System.Byte.MaxValue;
  336. AssertEquals("#O10", "377", Conversion.Oct(I16));
  337. I16 = (System.Int16)((I16 + 1) * -1);
  338. AssertEquals("#O11", "177400", Conversion.Oct(I16));
  339. I16 = -2;
  340. AssertEquals("#O12", "177776", Conversion.Oct(I16));
  341. I32 = System.UInt16.MaxValue;
  342. AssertEquals("#O13", "177777", Conversion.Oct(I32));
  343. I32 = (I32 + 1) * -1;
  344. AssertEquals("#O14", "37777600000", Conversion.Oct(I32));
  345. I32 = -2;
  346. AssertEquals("#O15", "37777777776", Conversion.Oct(I32));
  347. I64 = System.UInt32.MaxValue;
  348. AssertEquals("#O16", "37777777777", Conversion.Oct(I64));
  349. I64 = (I64 + 1) * -1;
  350. AssertEquals("#O17", "1777777777740000000000", Conversion.Oct(I64));
  351. I64 = -2;
  352. AssertEquals("#O18", "1777777777777777777776", Conversion.Oct(I64));
  353. I16 = System.Byte.MaxValue;
  354. S = I16.ToString();
  355. AssertEquals("#O19", "377", Conversion.Oct(S));
  356. I16 = (System.Int16)((I16 + 1) * -1);
  357. S = I16.ToString();
  358. AssertEquals("#O20", "37777777400", Conversion.Oct(S));
  359. I16 = -2;
  360. S = I16.ToString();
  361. AssertEquals("#O21", "37777777776", Conversion.Oct(S));
  362. I32 = System.UInt16.MaxValue;
  363. S = I32.ToString();
  364. AssertEquals("#O22", "177777", Conversion.Oct(S));
  365. I32 = (I32 + 1) * -1;
  366. S = I32.ToString();
  367. AssertEquals("#O23", "37777600000", Conversion.Oct(S));
  368. I32 = -2;
  369. S = I32.ToString();
  370. AssertEquals("#O24", "37777777776", Conversion.Oct(S));
  371. I64 = System.UInt32.MaxValue;
  372. S = I64.ToString();
  373. AssertEquals("#O25", "37777777777", Conversion.Oct(S));
  374. I64 = (I64 + 1) * -1;
  375. S = I64.ToString();
  376. AssertEquals("#O26", "1777777777740000000000", Conversion.Oct(S));
  377. UI8 = System.Byte.MaxValue;
  378. O = UI8;
  379. AssertEquals("#O27", "377", Conversion.Oct(O));
  380. I16 = System.Byte.MaxValue;
  381. O = I16;
  382. AssertEquals("#O28", "377", Conversion.Oct(O));
  383. I16 = (System.Int16)((I16 + 1) * -1);
  384. O = I16;
  385. AssertEquals("#O29", "177400", Conversion.Oct(O));
  386. I16 = -2;
  387. O = I16;
  388. AssertEquals("#O29", "177776", Conversion.Oct(O));
  389. I32 = System.UInt16.MaxValue;
  390. O = I32;
  391. AssertEquals("#O30", "177777", Conversion.Oct(O));
  392. I32 = (I32 + 1) * -1;
  393. O = I32;
  394. AssertEquals("#O31", "37777600000", Conversion.Oct(O));
  395. I32 = -2;
  396. O = I32;
  397. AssertEquals("#O32", "37777777776", Conversion.Oct(O));
  398. I64 = System.UInt32.MaxValue;
  399. O = I64;
  400. AssertEquals("#O33", "37777777777", Conversion.Oct(O));
  401. I64 = (I64 + 1) * -1;
  402. O = I64;
  403. AssertEquals("#O34", "1777777777740000000000", Conversion.Oct(O));
  404. I64 = -2;
  405. O = I64;
  406. // FIXME: MS doesn't pass this test
  407. AssertEquals("#O35", "1777777777777777777776", Conversion.Oct(O));
  408. O = typeof(int);
  409. bool CaughtException = false;
  410. try {
  411. Conversion.Oct(O);
  412. }
  413. catch (Exception e) {
  414. AssertEquals("#O36", typeof(ArgumentException), e.GetType());
  415. CaughtException = true;
  416. }
  417. AssertEquals("#O37", true, CaughtException);
  418. CaughtException = false;
  419. try {
  420. Conversion.Oct(null);
  421. }
  422. catch (Exception e) {
  423. AssertEquals("#O38", typeof(ArgumentNullException), e.GetType());
  424. CaughtException = true;
  425. }
  426. AssertEquals("#O39", true, CaughtException);
  427. }
  428. // test the Str function
  429. public void TestStr() {
  430. AssertEquals("#S01", "-1", Conversion.Str(-1));
  431. AssertEquals("#S02", " 1", Conversion.Str(1));
  432. bool CaughtException = false;
  433. Object O = typeof(int);
  434. try {
  435. Conversion.Str(O);
  436. }
  437. catch (Exception e) {
  438. AssertEquals("#S03", typeof(InvalidCastException), e.GetType());
  439. CaughtException = true;
  440. }
  441. AssertEquals("#S04", true, CaughtException);
  442. CaughtException = false;
  443. try {
  444. Conversion.Str(null);
  445. }
  446. catch (Exception e) {
  447. AssertEquals("#S05", typeof(ArgumentNullException), e.GetType());
  448. CaughtException = true;
  449. }
  450. }
  451. // Test the Val function
  452. public void TestVal() {
  453. AssertEquals("#V01", 4, Conversion.Val('4'));
  454. AssertEquals("#V02", -3542.76, Conversion.Val(" - 3 5 .4 2 7 6E+ 0 0 2 "));
  455. AssertEquals("#V03", 255D, Conversion.Val("&HFF"));
  456. AssertEquals("#V04", 255D, Conversion.Val("&o377"));
  457. System.Object O = " - 3 5 .4 7 6E+ 0 0 3";
  458. AssertEquals("#V05", -35476D, Conversion.Val(O));
  459. bool CaughtException;
  460. CaughtException = false;
  461. try {
  462. Conversion.Val("3E+9999999");
  463. }
  464. catch (Exception e) {
  465. AssertEquals("#V06", typeof(OverflowException), e.GetType());
  466. CaughtException = true;
  467. }
  468. AssertEquals("#V07", true, CaughtException);
  469. CaughtException = false;
  470. try {
  471. Conversion.Val(typeof(int));
  472. }
  473. catch (Exception e) {
  474. AssertEquals("#V08", typeof(ArgumentException), e.GetType());
  475. CaughtException = true;
  476. }
  477. AssertEquals("#V09", true, CaughtException);
  478. }
  479. }
  480. }