Remove dependency on GMP, so that it is easier to run the bench suite.

This commit is contained in:
Patrick Pelissier committed 2018-03-29 20:01:45 +02:00
1 parent 18710567f2
commit bc83fe43e5
9 files changed
+142 -74

No files matched your search

+14 -14
View File
@@ -21,28 +21,28 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include <stdio.h>
#include <gmp.h>
#include "mympz.h"
#include "m-string.h"
#include "m-tuple.h"
#include "coverage.h"
START_COVERAGE
TUPLE_DEF2(pair,
(key, string_t, (INIT(string_init), INIT_SET(string_init_set), SET(string_set), CLEAR(string_clear))),
(value, mpz_t, (INIT(mpz_init), INIT_SET(mpz_init_set), SET(mpz_set), CLEAR(mpz_clear) )))
(value, my_mpz_t, MYMPZ_OPLIST) )
END_COVERAGE
// No cmp defined
TUPLE_DEF2(triple,
(key, string_t, (INIT(string_init), INIT_SET(string_init_set), SET(string_set), CLEAR(string_clear), CMP(string_cmp))),
(value, mpz_t, (INIT(mpz_init), INIT_SET(mpz_init_set), SET(mpz_set), CLEAR(mpz_clear) )),
(value, my_mpz_t, MYMPZ_OPLIST ),
(data, const char *, ()))
// cmp shall be defined
TUPLE_DEF2(pair3,
(key, string_t, (INIT(string_init), INIT_SET(string_init_set), SET(string_set), CLEAR(string_clear), CMP(string_cmp), HASH(string_hash), EQUAL(string_equal_p))),
(value, mpz_t, (INIT(mpz_init), INIT_SET(mpz_init_set), SET(mpz_set), CLEAR(mpz_clear), CMP(mpz_cmp) )))
(value, my_mpz_t, M_OPEXTEND( MYMPZ_OPLIST, CMP(my_mpz_cmp)) ) )
TUPLE_DEF2(pair_str,
(vala, string_t, STRING_OPLIST),
@@ -98,33 +98,33 @@ int main(void)
pair_init (p1);
string_set_str(p1->key, "HELLO");
mpz_set_str(p1->value, "1742", 10);
my_mpz_set_ui(p1->value, 1742);
pair_init_set (p2, p1);
assert(mpz_cmp_ui(p2->value, 1742) == 0);
assert(my_mpz_cmp_ui(p2->value, 1742) == 0);
assert(string_equal_str_p(p2->key, "HELLO"));
string_set_str(p2->key, "HELLO WORLD");
mpz_set_str(p2->value, "174217", 10);
my_mpz_set_ui(p2->value, 174217);
pair_set(p1, p1);
pair_set(p1, p2);
assert(mpz_cmp_ui(p1->value, 174217) == 0);
assert(my_mpz_cmp_ui(p1->value, 174217) == 0);
assert(string_equal_str_p(p1->key, "HELLO WORLD"));
pair_clear(p1);
pair_clear(p2);
string_t s;
mpz_t z;
my_mpz_t z;
pair3_t p3, p4;
string_init_set_str(s, "HELLO");
mpz_init_set_ui (z, 1442);
my_mpz_init_set_ui (z, 1442);
pair3_init_set2(p3, s, z);
pair3_init_set2(p4, s, z);
int i = pair3_cmp (p3, p4);
assert (i == 0);
mpz_set_ui (z, 1443);
my_mpz_set_ui (z, 1443);
pair3_set_value(p4, z);
i = pair3_cmp (p3, p4);
assert (i < 0);
mpz_set_ui (z, 1442);
my_mpz_set_ui (z, 1442);
string_set_str(s, "HELLN");
pair3_set_key(p4, s);
i = pair3_cmp (p3, p4);
@@ -132,7 +132,7 @@ int main(void)
pair3_clear(p3);
pair3_clear(p4);
string_clear(s);
mpz_clear(z);
my_mpz_clear(z);
check_io();
check_swap();