// Copyright (c) 2003 David Muse
// See the file COPYING for more information
#include <rudiments/dictionary.h>
#include <stdio.h>
#ifdef RUDIMENTS_NAMESPACE
using namespace rudiments;
#endif
int main(int argc, const char **argv) {
// create a dictionary containing string keys and string values
namevaluepairs dict;
printf("string keys, string values:\n");
// add values to the dictionary
dict.setData("1","one");
dict.setData("2","two");
dict.setData("3","three");
dict.setData("4","four");
// display the length and contents of the dictionary
printf("length: %ld\n",dict.getList()->getLength());
dict.print();
printf("\n");
// remove values, displaying the dictionary after each removal
dict.removeData("3");
dict.print();
printf("\n");
dict.removeData("2");
dict.print();
printf("\n");
dict.removeData("4");
dict.print();
printf("\n");
dict.removeData("1");
dict.print();
// create a dictionary containing long integer keys and string values
numericdictionary<char *> numdict;
printf("integer keys, string values:\n");
// add values to the dictionary
numdict.setData(1,"one");
numdict.setData(2,"two");
numdict.setData(3,"three");
numdict.setData(4,"four");
// display the length and contents of the dictionary
printf("length: %ld\n",numdict.getList()->getLength());
numdict.print();
printf("\n");
// remove values, displaying the dictionary after each removal
numdict.removeData(3);
numdict.print();
printf("\n");
numdict.removeData(2);
numdict.print();
printf("\n");
numdict.removeData(4);
numdict.print();
printf("\n");
numdict.removeData(1);
numdict.print();
printf("\n");
// create a dictionary containing double precision
// floating point keys and string values
dictionary<double,char *> doubledict;
printf("floating point keys, string values:\n");
// add values to the dictionary
doubledict.setData(1.1,"one point one");
doubledict.setData(2.2,"two point two");
doubledict.setData(3.3,"three point three");
doubledict.setData(4.4,"four point four");
// display the length and contents of the dictionary
printf("length: %ld\n",doubledict.getList()->getLength());
doubledict.print();
printf("\n");
// remove values, displaying the dictionary after each removal
doubledict.removeData(3.3);
doubledict.print();
printf("\n");
doubledict.removeData(2.2);
doubledict.print();
printf("\n");
doubledict.removeData(4.4);
doubledict.print();
printf("\n");
doubledict.removeData(1.1);
doubledict.print();
printf("\n");
}