~ubuntu-branches/ubuntu/intrepid/graphicsmagick/intrepid

« back to all changes in this revision

Viewing changes to tests/maptest.c

  • Committer: Bazaar Package Importer
  • Author(s): Daniel Kobras
  • Date: 2006-05-06 16:28:08 UTC
  • Revision ID: james.westby@ubuntu.com-20060506162808-vt2ni3r5nytcszms
Tags: upstream-1.1.7
ImportĀ upstreamĀ versionĀ 1.1.7

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
  Copyright (C) 2003 GraphicsMagick Group
 
3
 
 
4
  This program is covered by multiple licenses, which are described in
 
5
  Copyright.txt. You should have received a copy of Copyright.txt with this
 
6
  package; otherwise see http://www.graphicsmagick.org/www/Copyright.html.
 
7
 
 
8
 Test MagickMap key,value map functionality
 
9
 
 
10
 Written by Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
 
11
 
 
12
*/
 
13
 
 
14
#if !defined(_VISUALC_)
 
15
#include <magick_config.h>
 
16
#endif
 
17
#include <stdio.h>
 
18
#include <stdlib.h>
 
19
#include <sys/types.h>
 
20
#include <string.h>
 
21
#if defined(_VISUALC_)
 
22
#include <stdlib.h>
 
23
#include <sys\types.h>
 
24
#endif
 
25
#include <time.h>
 
26
#include <magick/api.h>
 
27
#include <magick/map.h>
 
28
 
 
29
typedef struct _KeyValMap
 
30
{
 
31
  char *key;
 
32
  char *value;
 
33
} KeyValMap;
 
34
 
 
35
 
 
36
int main ( int argc, char **argv )
 
37
{
 
38
  int
 
39
    exit_status = 0,
 
40
    i;
 
41
 
 
42
  ExceptionInfo
 
43
    exception;
 
44
 
 
45
  MagickMap
 
46
    map;
 
47
 
 
48
  MagickMapIterator
 
49
    iterator;
 
50
 
 
51
  const char
 
52
    *key;
 
53
 
 
54
  static const KeyValMap
 
55
    KeyVal[] =
 
56
    {
 
57
      { "0", "number 0" },
 
58
      { "1", "number 1" },
 
59
      { "2", "number 2" },
 
60
      { "3", "number 3" },
 
61
      { "4", "number 4" },
 
62
      { "5", "number 5" },
 
63
      { "6", "number 6" },
 
64
      { "7", "number 7" },
 
65
      { "8", "number 8" },
 
66
      { "9", "number 9" },
 
67
      { 0, 0 }
 
68
    };
 
69
 
 
70
 
 
71
  GetExceptionInfo(&exception);
 
72
  map=MagickMapAllocateMap(MagickMapCopyString,MagickMapDeallocateString);
 
73
 
 
74
  printf("Adding map entries ...\n");
 
75
  for (i=0; KeyVal[i].key; i++)
 
76
    {
 
77
      MagickMapAddEntry(map,KeyVal[i].key,(void *)KeyVal[i].value,0,&exception);
 
78
    }
 
79
 
 
80
 
 
81
  {
 
82
    char
 
83
      str_index[MaxTextExtent];
 
84
 
 
85
    printf("Keyed access ...\n");
 
86
    for (i=0; KeyVal[i].key; i++)
 
87
      {
 
88
        FormatString(str_index,"%u",i);
 
89
        printf("key=\"%s\" value=\"%s\"\n", str_index,
 
90
               (char *)MagickMapAccessEntry(map,str_index,0));
 
91
      }
 
92
  }
 
93
 
 
94
  iterator=MagickMapAllocateIterator(map);
 
95
  printf("Iterate forward ...\n");
 
96
  while(MagickMapIterateNext(iterator,&key))
 
97
    printf("key=%s value=%s\n",key,
 
98
      (char *)MagickMapDereferenceIterator(iterator,0));
 
99
 
 
100
  printf("Iterate reverse ...\n");
 
101
  while(MagickMapIteratePrevious(iterator,&key))
 
102
    printf("key=%s value=%s\n",key,
 
103
      (char *)MagickMapDereferenceIterator(iterator,0));
 
104
 
 
105
  i=2;
 
106
  printf("Remove entry for key \"%s\" and then iterate forward ...\n",
 
107
    KeyVal[i].key);
 
108
  MagickMapRemoveEntry(map,KeyVal[i].key);
 
109
  while(MagickMapIterateNext(iterator,&key))
 
110
    printf("key=%s value=%s\n",key,
 
111
      (char *)MagickMapDereferenceIterator(iterator,0));
 
112
 
 
113
  printf("Iterate reverse ...\n");
 
114
  while(MagickMapIteratePrevious(iterator,&key))
 
115
    printf("key=%s value=%s\n",key,
 
116
      (char *)MagickMapDereferenceIterator(iterator,0));
 
117
 
 
118
  MagickMapDeallocateIterator(iterator);
 
119
 
 
120
  i=2;
 
121
  MagickMapAddEntry(map,KeyVal[i].key,(void *)KeyVal[i].value,0,&exception);
 
122
  printf("Add entry for key \"%s\" and then iterate forward ...\n",
 
123
         KeyVal[i].key);
 
124
 
 
125
  iterator=MagickMapAllocateIterator(map);  
 
126
  while(MagickMapIterateNext(iterator,&key))
 
127
    printf("key=%s value=%s\n",key,
 
128
           (char *)MagickMapDereferenceIterator(iterator,0));
 
129
 
 
130
  MagickMapDeallocateIterator(iterator);
 
131
  MagickMapDeallocateMap(map);
 
132
 
 
133
  DestroyExceptionInfo(&exception);
 
134
  return exit_status;
 
135
}