Coverage for tests/test_value.py: 100%

59 statements  

« prev     ^ index     » next       coverage.py v7.6.12, created at 2025-02-20 16:25 +0000

1import unittest 

2 

3from wasmtime import * 

4 

5 

6class TestValue(unittest.TestCase): 

7 def test_i32(self): 

8 with self.assertRaises(TypeError): 

9 Val.i32('') # type: ignore 

10 with self.assertRaises(TypeError): 

11 Val.i32(1.2) # type: ignore 

12 

13 i = Val.i32(1) 

14 self.assertEqual(i.as_i32(), 1) 

15 i = Val.i32(0xffffffff) 

16 self.assertEqual(i.as_i32(), -1) 

17 i = Val.i32(0x800000000) 

18 self.assertEqual(i.as_i32(), 0) 

19 

20 self.assertEqual(None, i.as_i64()) 

21 self.assertEqual(None, i.as_f32()) 

22 self.assertEqual(None, i.as_f64()) 

23 self.assertEqual(i.type, ValType.i32()) 

24 

25 def test_i64(self): 

26 with self.assertRaises(TypeError): 

27 Val.i64('') # type: ignore 

28 with self.assertRaises(TypeError): 

29 Val.i64(1.2) # type: ignore 

30 

31 i = Val.i64(1) 

32 self.assertEqual(i.as_i64(), 1) 

33 i = Val.i64(0xffffffff) 

34 self.assertEqual(i.as_i64(), 0xffffffff) 

35 i = Val.i64(0x800000000) 

36 self.assertEqual(i.as_i64(), 0x800000000) 

37 i = Val.i64(0xffffffffffffffff) 

38 self.assertEqual(i.as_i64(), -1) 

39 i = Val.i64(0x80000000000000000) 

40 self.assertEqual(i.as_i64(), 0) 

41 

42 self.assertEqual(None, i.as_i32()) 

43 self.assertEqual(None, i.as_f32()) 

44 self.assertEqual(None, i.as_f64()) 

45 self.assertEqual(i.type, ValType.i64()) 

46 

47 def test_f32(self): 

48 with self.assertRaises(TypeError): 

49 Val.f32('') # type: ignore 

50 with self.assertRaises(TypeError): 

51 Val.f32(1) 

52 

53 i = Val.f32(1.0) 

54 self.assertEqual(i.as_f32(), 1.0) 

55 self.assertEqual(None, i.as_i64()) 

56 self.assertEqual(None, i.as_i32()) 

57 self.assertEqual(None, i.as_f64()) 

58 self.assertEqual(i.type, ValType.f32()) 

59 

60 def test_f64(self): 

61 with self.assertRaises(TypeError): 

62 Val.f64('') # type: ignore 

63 with self.assertRaises(TypeError): 

64 Val.f64(1) 

65 

66 i = Val.f64(1.0) 

67 self.assertEqual(i.as_f64(), 1.0) 

68 self.assertEqual(None, i.as_i32()) 

69 self.assertEqual(None, i.as_i64()) 

70 self.assertEqual(None, i.as_f32()) 

71 self.assertEqual(i.type, ValType.f64())