added qse_htl_yanknode(), qse_htl_upyank().

added qse_raddic_deletevendorbyname(), qse_raddic_deletevendorbyid()
This commit is contained in:
2017-12-11 08:48:06 +00:00
parent 4266d8026c
commit c9bbd3c993
5 changed files with 267 additions and 45 deletions

View File

@ -16,7 +16,7 @@
static int test1 ()
{
qse_raddic_t* dic;
qse_raddic_vendor_t* vendor;
qse_raddic_vendor_t* vendor, * v;
int i;
dic = qse_raddic_open (QSE_MMGR_GETDFL(), 0);
@ -44,9 +44,10 @@ static int test1 ()
_assert (vendor != QSE_NULL && vendor->vendorpec == 12365, "unabled to find a vendor named Abiyo-aliased.Net");
_assert (qse_strcasecmp(vendor->name, QSE_T("abiyo-aliased.net")) == 0, "unabled to find a vendor of value 12365");
#define COUNT 65535
#define COUNT1 600
#define COUNT2 700
for (i = 0; i < COUNT; i++)
for (i = 0; i < COUNT1; i++)
{
qse_char_t tmp[64];
qse_strxfmt(tmp, QSE_COUNTOF(tmp), QSE_T("test%d"), i);
@ -56,7 +57,7 @@ static int test1 ()
_assert (qse_strcasecmp(vendor->name, tmp) == 0, "wrong vendor name");
}
for (i = 0; i < COUNT; i++)
for (i = 0; i < COUNT1; i++)
{
qse_char_t tmp[64];
qse_strxfmt(tmp, QSE_COUNTOF(tmp), QSE_T("test%d"), i);
@ -66,7 +67,7 @@ static int test1 ()
_assert (qse_strcasecmp(vendor->name, tmp) == 0, "wrong vendor name");
}
for (i = 0; i < COUNT; i++)
for (i = 0; i < COUNT1; i++)
{
qse_char_t tmp[64];
qse_strxfmt(tmp, QSE_COUNTOF(tmp), QSE_T("test%d"), i);
@ -76,6 +77,91 @@ static int test1 ()
_assert (qse_strcasecmp(vendor->name, tmp) == 0, "wrong vendor name");
}
for (i = COUNT1; i < COUNT2; i++)
{
qse_char_t tmp[64];
qse_strxfmt(tmp, QSE_COUNTOF(tmp), QSE_T("test%d"), i);
vendor = qse_raddic_addvendor (dic, tmp, COUNT1);
// insert different items with the same value
_assert (vendor != QSE_NULL, "unable to add a vendor");
_assert (vendor->vendorpec == COUNT1, "wrong vendor value");
_assert (qse_strcasecmp(vendor->name, tmp) == 0, "wrong vendor name");
v = qse_raddic_findvendorbyvalue (dic, COUNT1);
_assert (vendor == v, "unable to find a last added vendor by value");
}
for (i = COUNT1; i < COUNT2 - 1; i++)
{
qse_char_t tmp[64];
int n;
qse_strxfmt(tmp, QSE_COUNTOF(tmp), QSE_T("test%d"), i);
n = qse_raddic_deletevendorbyname (dic, tmp);
_assert (n == 0, "unable to delete a vendor");
v = qse_raddic_findvendorbyname (dic, tmp);
_assert (v == QSE_NULL, "vendor found errorenously");
if (i == COUNT2 - 1)
{
v = qse_raddic_findvendorbyvalue (dic, COUNT1);
_assert (v == QSE_NULL, "vendor of COUNT1 found errorenously");
}
else
{
qse_strxfmt(tmp, QSE_COUNTOF(tmp), QSE_T("test%d"), i + 1);
v = qse_raddic_findvendorbyname (dic, tmp);
_assert (v != QSE_NULL && v->vendorpec == COUNT1 && qse_strcasecmp(tmp, v->name) == 0, "unable to find an expected vendor");
v = qse_raddic_findvendorbyvalue (dic, COUNT1);
_assert (v != QSE_NULL && v->vendorpec == COUNT1, "unable to find the vendor of COUNT1");
}
}
for (i = 0; i < COUNT1; i++)
{
qse_char_t tmp[64];
int n;
qse_strxfmt(tmp, QSE_COUNTOF(tmp), QSE_T("test%d"), i);
n = qse_raddic_deletevendorbyname (dic, tmp);
_assert (n == 0, "unable to delete a vendor");
}
for (i = 0; i < COUNT1; i++)
{
qse_char_t tmp[64];
qse_strxfmt(tmp, QSE_COUNTOF(tmp), QSE_T("test%d"), i);
v = qse_raddic_addvendor (dic, tmp, i);
_assert (v != QSE_NULL && v->vendorpec == i, "unable to add a vendor");
qse_strxfmt(tmp, QSE_COUNTOF(tmp), QSE_T("testx%d"), i);
v = qse_raddic_addvendor (dic, tmp, i);
_assert (v != QSE_NULL && v->vendorpec == i, "unable to add a vendor");
qse_strxfmt(tmp, QSE_COUNTOF(tmp), QSE_T("testy%d"), i);
v = qse_raddic_addvendor (dic, tmp, i);
_assert (v != QSE_NULL && v->vendorpec == i, "unable to add a vendor");
}
for (i = 0; i < COUNT1; i++)
{
int n;
n = qse_raddic_deletevendorbyvalue (dic, i);
_assert (n == 0, "unable to delete a vendor by value");
n = qse_raddic_deletevendorbyvalue (dic, i);
_assert (n == 0, "unable to delete a vendor by value");
n = qse_raddic_deletevendorbyvalue (dic, i);
_assert (n == 0, "unable to delete a vendor by value");
n = qse_raddic_deletevendorbyvalue (dic, i);
_assert (n <= -1, "erroreneously successful vendor deletion by value");
}
qse_raddic_close (dic);
return 0;
}