@@ -990,8 +990,8 @@ static void test_num_ssm_add_mod(bool show)
990990 TEST_CASE_OPEN(TAG) \
991991 { \
992992 num_p num = num_create_immed(ARG_OPEN NUM); \
993- num_p num_res = num_create(CLU_ARGS(N, N)); \
994- num_ssm_add_mod(num_res, 0, num, POS_1, num, POS_2, N); \
993+ num_p num_res = num_create_rand(N); \
994+ num_ssm_add_mod(num_res, 0, num, POS_1, num, POS_2, N); \
995995 assert(num_immed(num_res, ARG_OPEN RES)); \
996996 assert(num_immed(num, ARG_OPEN NUM)); \
997997 } \
@@ -1037,7 +1037,7 @@ static void test_num_ssm_sub_mod(bool show)
10371037 TEST_CASE_OPEN(TAG) \
10381038 { \
10391039 num_p num = num_create_immed(ARG_OPEN NUM); \
1040- num_p num_res = num_create(CLU_ARGS(N, N)); \
1040+ num_p num_res = num_create_rand(N); \
10411041 num_ssm_sub_mod(num_res, 0, num, POS_1, num, POS_2, N); \
10421042 assert(num_immed(num_res, ARG_OPEN RES)); \
10431043 assert(num_immed(num, ARG_OPEN NUM)); \
@@ -1134,24 +1134,24 @@ static void test_num_ssm_pad(bool show)
11341134{
11351135 TEST_FN_OPEN
11361136
1137- #define TEST_SSM_PAD (TAG , NUM , Mv , Nv , Kv , RES ) \
1138- { \
1139- TEST_CASE_OPEN(TAG) \
1140- { \
1141- num_p num = num_create_immed(ARG_OPEN NUM); \
1142- num_p num_res = num_create(CLU_ARGS(( Nv) * (Kv), (Nv) * (Kv))); \
1143- ssm_params_t p = (ssm_params_t) \
1144- { \
1145- .M = (Mv), \
1146- .K = (Kv), \
1147- .n = (Nv) \
1148- }; \
1149- num_ssm_pad(num_res, num, &p); \
1150- num_res->count = (Nv) * (Kv); \
1151- assert(num_immed(num_res, ARG_OPEN RES)) \
1152- assert(num_immed(num, ARG_OPEN NUM)) \
1153- } \
1154- TEST_CASE_CLOSE \
1137+ #define TEST_SSM_PAD (TAG , NUM , Mv , Nv , Kv , RES ) \
1138+ { \
1139+ TEST_CASE_OPEN(TAG) \
1140+ { \
1141+ num_p num = num_create_immed(ARG_OPEN NUM); \
1142+ num_p num_res = num_create_rand(( Nv) * (Kv)); \
1143+ ssm_params_t p = (ssm_params_t) \
1144+ { \
1145+ .M = (Mv), \
1146+ .K = (Kv), \
1147+ .n = (Nv) \
1148+ }; \
1149+ num_ssm_pad(num_res, num, &p); \
1150+ num_res->count = (Nv) * (Kv); \
1151+ assert(num_immed(num_res, ARG_OPEN RES)) \
1152+ assert(num_immed(num, ARG_OPEN NUM)) \
1153+ } \
1154+ TEST_CASE_CLOSE \
11551155 }
11561156
11571157 TEST_SSM_PAD (1 ,
@@ -1182,6 +1182,20 @@ static void test_num_ssm_pad(bool show)
11821182 (3 , 0 , UINT64_MAX , UINT64_MAX ), 1 , 2 , 2 ,
11831183 (4 , 0 , UINT64_MAX , 0 , UINT64_MAX )
11841184 )
1185+ TEST_SSM_PAD (8 ,
1186+ (9 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ),
1187+ 1 , 4 , 8 ,
1188+ (32 ,
1189+ 0 , 0 , 1 , 0 ,
1190+ 0 , 0 , 0 , 0 ,
1191+ 0 , 0 , 0 , 0 ,
1192+ 0 , 0 , 0 , 0 ,
1193+ 0 , 0 , 0 , 0 ,
1194+ 0 , 0 , 0 , 0 ,
1195+ 0 , 0 , 0 , 0 ,
1196+ 0 , 0 , 0 , 0
1197+ )
1198+ )
11851199
11861200 #undef TEST_SSM_PAD
11871201
@@ -1197,7 +1211,7 @@ static void test_num_ssm_shl(bool show)
11971211 TEST_CASE_OPEN(TAG) \
11981212 { \
11991213 num_p num = num_create_immed(ARG_OPEN NUM); \
1200- num_p num_res = num_create(CLU_ARGS(N, N)); \
1214+ num_p num_res = num_create_rand(N); \
12011215 num_ssm_shl(num_res, 0, num, POS, N, BITS); \
12021216 assert(num_immed(num_res, ARG_OPEN RES)); \
12031217 assert(num_immed(num, ARG_OPEN NUM)); \
@@ -1268,7 +1282,7 @@ static void test_num_ssm_shr(bool show)
12681282 TEST_CASE_OPEN(TAG) \
12691283 { \
12701284 num_p num = num_create_immed(ARG_OPEN NUM); \
1271- num_p num_res = num_create(CLU_ARGS(N, N)); \
1285+ num_p num_res = num_create_rand(N); \
12721286 num_ssm_shr(num_res, 0, num, POS, N, BITS); \
12731287 assert(num_immed(num_res, ARG_OPEN RES)); \
12741288 assert(num_immed(num, ARG_OPEN NUM)); \
@@ -1339,7 +1353,7 @@ static void test_num_ssm_shl_mod(bool show)
13391353 TEST_CASE_OPEN(TAG) \
13401354 { \
13411355 num_p num = num_create_immed(ARG_OPEN NUM); \
1342- num_p num_aux = num_create(CLU_ARGS(6, 0)); \
1356+ num_p num_aux = num_create_rand(6); \
13431357 num_ssm_shl_mod(num_aux, num, 0, 3, BITS); \
13441358 num_free(num_aux); \
13451359 assert(num_immed(num, ARG_OPEN RES)); \
@@ -1418,7 +1432,7 @@ static void test_num_ssm_shr_mod(bool show)
14181432 TEST_CASE_OPEN(TAG) \
14191433 { \
14201434 num_p num = num_create_immed(ARG_OPEN NUM); \
1421- num_p num_aux = num_create(CLU_ARGS(6, 0)); \
1435+ num_p num_aux = num_create_rand(6); \
14221436 num_ssm_shr_mod(num_aux, num, 0, 3, BITS); \
14231437 num_free(num_aux); \
14241438 assert(num_immed(num, ARG_OPEN RES)); \
@@ -1496,24 +1510,24 @@ static void test_num_ssm_fft(bool show)
14961510{
14971511 TEST_FN_OPEN
14981512
1499- #define TEST_SSM_FFT (TAG , NUM , Nv , Kv , RES ) \
1500- { \
1501- TEST_CASE_OPEN(TAG) \
1502- { \
1503- num_p num = num_create_immed(ARG_OPEN NUM); \
1504- uint64_t Q = 64 * ((Nv) - 1) / (Kv); \
1505- ssm_params_t p = (ssm_params_t) \
1506- { \
1507- .K = (Kv), \
1508- .Q = Q, \
1509- .n = (Nv), \
1510- }; \
1511- num_p num_aux = num_create(CLU_ARGS( 2 * (Nv), 0 )); \
1512- num_ssm_fft_fwd(num_aux, num, &p); \
1513- num_free(num_aux); \
1514- assert(num_immed(num, ARG_OPEN RES)); \
1515- } \
1516- TEST_CASE_CLOSE \
1513+ #define TEST_SSM_FFT (TAG , NUM , Nv , Kv , RES ) \
1514+ { \
1515+ TEST_CASE_OPEN(TAG) \
1516+ { \
1517+ num_p num = num_create_immed(ARG_OPEN NUM); \
1518+ uint64_t Q = 64 * ((Nv) - 1) / (Kv); \
1519+ ssm_params_t p = (ssm_params_t) \
1520+ { \
1521+ .K = (Kv), \
1522+ .Q = Q, \
1523+ .n = (Nv), \
1524+ }; \
1525+ num_p num_aux = num_create_rand( 2 * (Nv)); \
1526+ num_ssm_fft_fwd(num_aux, num, &p); \
1527+ num_free(num_aux); \
1528+ assert(num_immed(num, ARG_OPEN RES)); \
1529+ } \
1530+ TEST_CASE_CLOSE \
15171531 }
15181532
15191533 TEST_SSM_FFT (1 ,
@@ -1550,15 +1564,15 @@ static void test_num_ssm_depad_wrap(bool show)
15501564{
15511565 TEST_FN_OPEN
15521566
1553- #define TEST_NUM_SSM_FFT (TAG , NUM_FFT , N , NUM_RES ) \
1567+ #define TEST_NUM_SSM_DEPAD_WRAP (TAG , NUM_FFT , N , NUM_RES ) \
15541568 { \
15551569 TEST_CASE_OPEN(TAG) \
15561570 { \
15571571 num_p num_fft = num_create_immed(ARG_OPEN NUM_FFT); \
15581572 ssm_params_t p = ssm_get_params_wrap(N); \
1559- num_p num_aux_1 = num_create(CLU_ARGS(N, 0)); \
1560- num_p num_aux_2 = num_create(CLU_ARGS( 2 * (N), 0)); \
1561- num_p num_res = num_create(CLU_ARGS(N, 0)); \
1573+ num_p num_aux_1 = num_create_rand(N); \
1574+ num_p num_aux_2 = num_create_rand( 2 * (N)); \
1575+ num_p num_res = num_create_rand(N); \
15621576 num_ssm_depad_wrap(num_aux_1, num_aux_2, num_res, num_fft, &p, N); \
15631577 assert(num_immed(num_res, ARG_OPEN NUM_RES)); \
15641578 num_free(num_aux_1); \
@@ -1568,7 +1582,7 @@ static void test_num_ssm_depad_wrap(bool show)
15681582 TEST_CASE_CLOSE \
15691583 }
15701584
1571- TEST_NUM_SSM_FFT (1 ,
1585+ TEST_NUM_SSM_DEPAD_WRAP (1 ,
15721586 (32 ,
15731587 0 , 0 , 0 , 0 ,
15741588 0 , 0 , 0 , 0 ,
@@ -1582,7 +1596,7 @@ static void test_num_ssm_depad_wrap(bool show)
15821596 9 ,
15831597 (1 , 1 )
15841598 )
1585- TEST_NUM_SSM_FFT (2 ,
1599+ TEST_NUM_SSM_DEPAD_WRAP (2 ,
15861600 (32 ,
15871601 0 , 0 , 0 , 1 ,
15881602 0 , 0 , 0 , 1 ,
@@ -1596,6 +1610,37 @@ static void test_num_ssm_depad_wrap(bool show)
15961610 9 ,
15971611 (8 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 )
15981612 )
1613+ TEST_NUM_SSM_DEPAD_WRAP (3 ,
1614+ (32 ,
1615+ 0 , 0 , 0 , 8 ,
1616+ 0 , 0 , 0 , 7 ,
1617+ 0 , 0 , 0 , 6 ,
1618+ 0 , 0 , 0 , 5 ,
1619+ 0 , 0 , 0 , 4 ,
1620+ 0 , 0 , 0 , 3 ,
1621+ 0 , 0 , 0 , 2 ,
1622+ 0 , 0 , 0 , 1
1623+ ),
1624+ 9 ,
1625+ (8 , 8 , 7 , 6 , 5 , 4 , 3 , 2 , 1 )
1626+ )
1627+ TEST_NUM_SSM_DEPAD_WRAP (4 ,
1628+ (32 ,
1629+ 0 , 0 , 1 , 0 ,
1630+ 0 , 0 , 0 , 0 ,
1631+ 0 , 0 , 0 , 0 ,
1632+ 0 , 0 , 0 , 0 ,
1633+ 0 , 0 , 0 , 0 ,
1634+ 0 , 0 , 0 , 0 ,
1635+ 0 , 0 , 0 , 0 ,
1636+ 0 , 0 , 0 , 0
1637+ ),
1638+ 9 ,
1639+ (9 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 )
1640+ )
1641+
1642+ TEST_CASE_OPEN (6 )
1643+ TEST_CASE_CLOSE
15991644
16001645 TEST_FN_CLOSE
16011646}
@@ -1623,8 +1668,6 @@ static void test_num_mul_ssm_wrap(bool show)
16231668{
16241669 TEST_FN_OPEN
16251670
1626- show = true;
1627-
16281671 #define TEST_NUM_MUL_SSM_WRAP (TAG , NUM_1 , NUM_2 , N , RES ) \
16291672 { \
16301673 TEST_CASE_OPEN(TAG) \
@@ -2595,7 +2638,7 @@ static void test_fuzz_num_ssm_sh(bool show)
25952638 num_p num = num_create_rand(N); \
25962639 num->chunk[(N) - 1] = 0; \
25972640 num_p num_res = num_copy(num); \
2598- num_p num_aux = num_create(CLU_ARGS( 2 *(N), 0)); \
2641+ num_p num_aux = num_create_rand( 2 *(N)); \
25992642 num_ssm_shl_mod(num_aux, num_res, 0, N, BITS); \
26002643 num_ssm_shr_mod(num_aux, num_res, 0, N, BITS); \
26012644 num_free(num_aux); \
@@ -2604,7 +2647,7 @@ static void test_fuzz_num_ssm_sh(bool show)
26042647 printf("\ncase: (n: %d) (bits: %d)", N, BITS); \
26052648 printf("\nentrie"); \
26062649 num_display_span_full("num", num, N, 1); \
2607- printf("\nroundrip results in"); \
2650+ printf("\nround trip results in"); \
26082651 num_display_span_full("num_res", num_res, N, 1); \
26092652 assert(false); \
26102653 } \
@@ -2649,6 +2692,25 @@ static void test_fuzz_num_ssm_pad_wrap_round_trip(bool show)
26492692{
26502693 TEST_FN_OPEN
26512694
2695+ TEST_CASE_OPEN (1 )
2696+ {
2697+ uint64_t N = 9 ;
2698+ num_p num_in = num_create_immed (9 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 );
2699+ ssm_params_t p = ssm_get_params_wrap (N );
2700+ num_p num_middle = num_create_dirty (CLU_ARGS (p .n * p .K , 0 ));
2701+ num_ssm_pad (num_middle , num_in , & p );
2702+ num_p num_aux_1 = num_create_rand (N );
2703+ num_p num_aux_2 = num_create_rand (2 * (N ));
2704+ num_p num_out = num_create_rand (N );
2705+ num_ssm_depad_wrap (num_aux_1 , num_aux_2 , num_out , num_middle , & p , N );
2706+ num_out -> count = N ;
2707+ assert (num_eq_dbg (num_in , num_out ));
2708+ num_free (num_aux_1 );
2709+ num_free (num_aux_2 );
2710+ num_free (num_middle );
2711+ }
2712+ TEST_CASE_CLOSE
2713+
26522714 #define TEST_FUZZ_NUM_SSM_PAD_WRAP_ROUND_TRIP (TAG , N , RUNS ) \
26532715 { \
26542716 TEST_FUZZ_CASE_OPEN(TAG, RUNS) \
@@ -2658,9 +2720,9 @@ static void test_fuzz_num_ssm_pad_wrap_round_trip(bool show)
26582720 ssm_params_t p = ssm_get_params_wrap(N); \
26592721 num_p num_middle = num_create_dirty(CLU_ARGS(p.n * p.K, 0)); \
26602722 num_ssm_pad(num_middle, num_in, &p); \
2661- num_p num_aux_1 = num_create_dirty(CLU_ARGS(N, 0)); \
2662- num_p num_aux_2 = num_create_dirty(CLU_ARGS( 2 * (N), 0)); \
2663- num_p num_out = num_create_dirty(CLU_ARGS(N, 0)); \
2723+ num_p num_aux_1 = num_create_rand(N); \
2724+ num_p num_aux_2 = num_create_rand( 2 * (N)); \
2725+ num_p num_out = num_create_rand(N); \
26642726 num_ssm_depad_wrap(num_aux_1, num_aux_2, num_out, num_middle, &p, N); \
26652727 num_out->count = N; \
26662728 assert(num_eq_dbg(num_in, num_out)); \
@@ -2671,9 +2733,9 @@ static void test_fuzz_num_ssm_pad_wrap_round_trip(bool show)
26712733 TEST_FUZZ_CASE_CLOSE \
26722734 }
26732735
2674- TEST_FUZZ_NUM_SSM_PAD_WRAP_ROUND_TRIP (1 , 9 , 100 );
2675- TEST_FUZZ_NUM_SSM_PAD_WRAP_ROUND_TRIP (2 , 17 , 100 );
2676- // TEST_FUZZ_NUM_SSM_PAD_WRAP_ROUND_TRIP(3 , 257, 100);
2736+ TEST_FUZZ_NUM_SSM_PAD_WRAP_ROUND_TRIP (2 , 9 , 100 );
2737+ TEST_FUZZ_NUM_SSM_PAD_WRAP_ROUND_TRIP (3 , 17 , 100 );
2738+ TEST_FUZZ_NUM_SSM_PAD_WRAP_ROUND_TRIP (4 , 257 , 100 );
26772739
26782740 TEST_FN_CLOSE
26792741}
@@ -2699,7 +2761,7 @@ static void test_fuzz_num_ssm_fft(bool show)
26992761 num_ssm_pad(num, num_0, &p); \
27002762 num_free(num_0); \
27012763 num_p num_res = num_copy(num); \
2702- num_p num_aux = num_create(CLU_ARGS( 2 * (Nv), 0)); \
2764+ num_p num_aux = num_create_rand( 2 * (Nv)); \
27032765 num_ssm_fft_fwd(num_aux, num_res, &p); \
27042766 num_ssm_fft_inv(num_aux, num_res, &p); \
27052767 num_free(num_aux); \
0 commit comments