Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #=========================================================================
- # IntMulFL_test
- #=========================================================================
- import pytest
- from pymtl3 import *
- from pymtl3.stdlib.test import mk_test_case_table
- from lab1_imul.IntMulFL import imul_fl
- #----------------------------------------------------------------------
- # Test Case: small positive * positive
- #----------------------------------------------------------------------
- small_pos_pos_msgs = [
- ( 2, 3, 6 ),
- ( 4, 5, 20 ),
- ( 3, 4, 12 ),
- ( 10, 13, 130 ),
- ( 8, 7, 56 ),
- ]
- #----------------------------------------------------------------------
- # Test Case: small negative * positive
- #----------------------------------------------------------------------
- small_neg_pos_msgs = [
- ( -2, 3, -6 ),
- ( -4, 5, -20 ),
- ( -3, 4, -12 ),
- ( -10, 13, -130 ),
- ( -8, 7, -56 ),
- ]
- #----------------------------------------------------------------------
- # Test Case: small positive * negative
- #----------------------------------------------------------------------
- small_pos_neg_msgs = [
- ( 2, -3, -6 ),
- ( 4, -5, -20 ),
- ( 3, -4, -12 ),
- ( 10, -13, -130 ),
- ( 8, -7, -56 ),
- ]
- #----------------------------------------------------------------------
- # Test Case: small negative * negative
- #----------------------------------------------------------------------
- small_neg_neg_msgs = [
- ( -2, -3, 6 ),
- ( -4, -5, 20 ),
- ( -3, -4, 12 ),
- ( -10, -13, 130 ),
- ( -8, -7, 56 ),
- ]
- #----------------------------------------------------------------------
- # Test Case: large positive * positive
- #----------------------------------------------------------------------
- large_pos_pos_msgs = [
- ( 0x0bcd0000, 0x0000abcd, 0x62290000 ),
- ( 0x0fff0000, 0x0000ffff, 0xf0010000 ),
- ( 0x0fff0000, 0x0fff0000, 0x00000000 ),
- ( 0x04e5f14d, 0x7839d4fc, 0x10524bcc ),
- ]
- #----------------------------------------------------------------------
- # Test Case: large negative * negative
- #----------------------------------------------------------------------
- large_neg_neg_msgs = [
- ( 0x80000001, 0x80000001, 0x00000001 ),
- ( 0x8000abcd, 0x8000ef00, 0x20646300 ),
- ( 0x80340580, 0x8aadefc0, 0x6fa6a000 ),
- ]
- #----------------------------------------------------------------------
- # Test Case: zeros
- #----------------------------------------------------------------------
- zeros_msgs = [
- ( 0, 0, 0 ),
- ( 0, 1, 0 ),
- ( 1, 0, 0 ),
- ( 0, -1, 0 ),
- ( -1, 0, 0 ),
- ]
- #-------------------------------------------------------------------------
- # Test Case Table
- #-------------------------------------------------------------------------
- test_case_table = mk_test_case_table([
- ( "msgs "),
- [ "small_pos_pos", small_pos_pos_msgs ],
- [ "small_neg_pos", small_neg_pos_msgs ],
- [ "small_pos_neg", small_pos_neg_msgs ],
- [ "small_neg_neg", small_neg_neg_msgs ],
- [ "large_pos_pos", large_pos_pos_msgs ],
- [ "large_neg_neg", large_neg_neg_msgs ],
- [ "zeros", zeros_msgs, ],
- ])
- #-------------------------------------------------------------------------
- # Test cases
- #-------------------------------------------------------------------------
- @pytest.mark.parametrize( **test_case_table )
- def test( test_params ):
- for a, b, result in test_params.msgs:
- assert imul_fl( a, b ) == b32( result )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement