Changeset 3495 for trunk/psLib/test/dataIO/tst_psFits.c
- Timestamp:
- Mar 24, 2005, 12:21:17 PM (21 years ago)
- File:
-
- 1 edited
-
trunk/psLib/test/dataIO/tst_psFits.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/test/dataIO/tst_psFits.c
r3475 r3495 6 6 * @author Robert DeSonia, MHPCC 7 7 * 8 * @version $Revision: 1.2 2$ $Name: not supported by cvs2svn $9 * @date $Date: 2005-03-2 2 21:52:40$8 * @version $Revision: 1.23 $ $Name: not supported by cvs2svn $ 9 * @date $Date: 2005-03-24 22:21:17 $ 10 10 * 11 11 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 49 49 static psS32 tst_psFitsReadTableColumnNum(void); 50 50 static psS32 tst_psFitsReadTableColumn(void); 51 static psS32 tst_psFitsUpdateTable(void); 51 52 52 53 testDescription tests[] = { … … 62 63 {tst_psFitsReadTableColumnNum,836, "psFitsReadTableColumnNum", 0, false}, 63 64 {tst_psFitsReadTableColumn,839, "psFitsReadTableColumn", 0, false}, 65 {tst_psFitsUpdateTable,840, "psFitsUpdateTable", 0, false}, 64 66 {testImageRead,567, "psFitsReadImage", 0, false}, 65 67 {testImageWrite,569, "psFitsWriteImage", 0, false}, … … 1081 1083 psFree(err); 1082 1084 1085 psFree(fits); 1086 1087 return 0; 1088 } 1089 1090 static psS32 tst_psFitsUpdateTable( void ) 1091 { 1092 psErr* err; 1093 1094 if (! makeTable()) { 1095 return 1; 1096 } 1097 1098 psFits* fits = psFitsAlloc(tableFilename); 1099 1100 if (fits == NULL) { 1101 psError(PS_ERR_UNKNOWN, false, 1102 "psFitsAlloc returned NULL on existing file."); 1103 return 2; 1104 } 1105 1106 psFitsMoveExtNum(fits,1,false); 1107 1108 // change the data in the file, going past by one (implicit new row of data) 1109 for (int row = 0; row < tableNumRows+1; row++) { 1110 psMetadata* md = psMetadataAlloc(); 1111 psMetadataAddF32(md,PS_LIST_TAIL,"MYFLT","",(float)row/-10.0); 1112 psMetadataAddF64(md,PS_LIST_TAIL,"MYDBL","",(double)row/-100.0); 1113 psMetadataAddS32(md,PS_LIST_TAIL,"MYINT","",-row); 1114 1115 if (! psFitsUpdateTable(fits,md,row)) { 1116 psError(PS_ERR_UNKNOWN, false, 1117 "psFitsUpdateTable returned false, but expected true for row=%d.", 1118 row); 1119 return 3; 1120 } 1121 psFree(md); 1122 } 1123 1124 for (int row = 0; row < tableNumRows+1; row++) { 1125 psMetadata* md = psFitsReadTableRow(fits, row); 1126 if (abs(psMetadataLookupF32(NULL,md,"MYFLT") - (float)row/-10.0) > FLT_EPSILON) { 1127 psError(PS_ERR_UNKNOWN, false, 1128 "psFitsUpdateTable did not change the float value for row=%d.", 1129 row); 1130 return 4; 1131 } 1132 if (abs(psMetadataLookupF64(NULL,md,"MYDBL") - (float)row/-100.0) > FLT_EPSILON) { 1133 psError(PS_ERR_UNKNOWN, false, 1134 "psFitsUpdateTable did not change the double value for row=%d.", 1135 row); 1136 return 5; 1137 } 1138 if (psMetadataLookupS32(NULL,md,"MYINT") != -row) { 1139 psError(PS_ERR_UNKNOWN, false, 1140 "psFitsUpdateTable did not change the integer value for row=%d.", 1141 row); 1142 return 6; 1143 } 1144 psFree(md); 1145 } 1146 1147 psMetadata* md = psMetadataAlloc(); 1148 psMetadataAddF32(md,PS_LIST_TAIL,"BOGUS","",-1.0f); 1149 psWarning("Following should be a warning."); 1150 psErrorClear(); 1151 if (! psFitsUpdateTable(fits,md,0)) { 1152 psError(PS_ERR_UNKNOWN, false, 1153 "psFitsUpdateTable did not return false with bogus column data"); 1154 return 10; 1155 } 1156 psFree(md); 1157 1158 md = psMetadataAlloc(); 1159 psMetadataAddF32(md,PS_LIST_TAIL,"MYFLT","",-1.0f); 1160 psMetadataAddF64(md,PS_LIST_TAIL,"MYDBL","",-2.0); 1161 psMetadataAddS32(md,PS_LIST_TAIL,"MYINT","",-3); 1162 1163 psWarning("Following should be an error."); 1164 psErrorClear(); 1165 if (psFitsUpdateTable(NULL,md,0)) { 1166 psError(PS_ERR_UNKNOWN, false, 1167 "psFitsUpdateTable did not return false with NULL psFits"); 1168 return 20; 1169 } 1170 err = psErrorLast(); 1171 if (err->code != PS_ERR_BAD_PARAMETER_NULL) { 1172 psError(PS_ERR_UNKNOWN, false, 1173 "psFitsUpdateTable did not error with NULL psFits"); 1174 return 21; 1175 } 1176 psFree(err); 1177 1178 psWarning("Following should be an error."); 1179 psErrorClear(); 1180 if (psFitsUpdateTable(fits,NULL,0)) { 1181 psError(PS_ERR_UNKNOWN, false, 1182 "psFitsUpdateTable did not return false with NULL psMetadata"); 1183 return 22; 1184 } 1185 err = psErrorLast(); 1186 if (err->code != PS_ERR_BAD_PARAMETER_NULL) { 1187 psError(PS_ERR_UNKNOWN, false, 1188 "psFitsUpdateTable did not error with NULL psMetadata"); 1189 return 23; 1190 } 1191 psFree(err); 1192 1193 psWarning("Following should be an error."); 1194 psErrorClear(); 1195 if (psFitsUpdateTable(fits,md,-1)) { 1196 psError(PS_ERR_UNKNOWN, false, 1197 "psFitsUpdateTable did not return false with row=-1"); 1198 return 24; 1199 } 1200 err = psErrorLast(); 1201 if (err->code != PS_ERR_IO) { 1202 psError(PS_ERR_UNKNOWN, false, 1203 "psFitsUpdateTable did not error with row=-1"); 1204 return 25; 1205 } 1206 1207 psFree(err); 1208 psFree(md); 1083 1209 psFree(fits); 1084 1210
Note:
See TracChangeset
for help on using the changeset viewer.
