@@ -215,6 +215,102 @@ FOSSIL_TEST(c_test_io_soap_suggest_with_tabs) {
215
215
free (result );
216
216
}
217
217
218
+ FOSSIL_TEST (c_test_io_soap_detect_sentiment_positive ) {
219
+ const char * input = "I love this product!" ;
220
+ const char * expected = "positive" ;
221
+ const char * result = fossil_io_soap_detect_sentiment (input );
222
+ ASSUME_ITS_EQUAL_CSTR (expected , result );
223
+ }
224
+
225
+ FOSSIL_TEST (c_test_io_soap_detect_sentiment_negative ) {
226
+ const char * input = "This is the worst idea ever." ;
227
+ const char * expected = "negative" ;
228
+ const char * result = fossil_io_soap_detect_sentiment (input );
229
+ ASSUME_ITS_EQUAL_CSTR (expected , result );
230
+ }
231
+
232
+ FOSSIL_TEST (c_test_io_soap_detect_sentiment_neutral ) {
233
+ const char * input = "It is a pencil." ;
234
+ const char * expected = "neutral" ;
235
+ const char * result = fossil_io_soap_detect_sentiment (input );
236
+ ASSUME_ITS_EQUAL_CSTR (expected , result );
237
+ }
238
+
239
+ FOSSIL_TEST (c_test_io_soap_detect_harmful_content ) {
240
+ const char * input = "You are worthless." ;
241
+ int result = fossil_io_soap_detect_harmful_content (input );
242
+ ASSUME_ITS_EQUAL_I32 (1 , result );
243
+ }
244
+
245
+ FOSSIL_TEST (c_test_io_soap_normalize_slang ) {
246
+ const char * input = "brb, ttyl!" ;
247
+ const char * expected = "be right back, talk to you later!" ;
248
+ char * result = fossil_io_soap_normalize_slang (input );
249
+ ASSUME_ITS_EQUAL_CSTR (expected , result );
250
+ free (result );
251
+ }
252
+
253
+ FOSSIL_TEST (c_test_io_soap_correct_grammar ) {
254
+ const char * input = "should of gone there" ;
255
+ const char * expected = "should have gone there" ;
256
+ char * result = fossil_io_soap_correct_grammar (input );
257
+ ASSUME_ITS_EQUAL_CSTR (expected , result );
258
+ free (result );
259
+ }
260
+
261
+ FOSSIL_TEST (c_test_io_soap_filter_offensive ) {
262
+ const char * input = "You are such an idiot." ;
263
+ const char * expected = "You are such an ***." ;
264
+ char * result = fossil_io_soap_filter_offensive (input );
265
+ ASSUME_ITS_EQUAL_CSTR (expected , result );
266
+ free (result );
267
+ }
268
+
269
+ FOSSIL_TEST (c_test_io_soap_detect_clickbait ) {
270
+ const char * input = "You won't believe what happened next!" ;
271
+ int result = fossil_io_soap_detect_clickbait (input );
272
+ ASSUME_ITS_EQUAL_I32 (1 , result );
273
+ }
274
+
275
+ FOSSIL_TEST (c_test_io_soap_detect_exaggeration ) {
276
+ const char * input = "This is the greatest thing in the entire universe!" ;
277
+ int result = fossil_io_soap_detect_exaggeration (input );
278
+ ASSUME_ITS_EQUAL_I32 (1 , result );
279
+ }
280
+
281
+ FOSSIL_TEST (c_test_io_soap_detect_fallacy ) {
282
+ const char * input = "If we allow A, then B, C, and D will also happen!" ;
283
+ const char * expected = "slippery slope" ; // assuming this is detected
284
+ const char * result = fossil_io_soap_detect_fallacy (input );
285
+ ASSUME_ITS_EQUAL_CSTR (expected , result );
286
+ }
287
+
288
+ FOSSIL_TEST (c_test_io_soap_summarize ) {
289
+ const char * input = "Although the product has some flaws, it is still worth buying because of its affordability." ;
290
+ const char * expected = "It's affordable despite some flaws." ; // approximate
291
+ char * result = fossil_io_soap_summarize (input );
292
+ ASSUME (result != NULL ); // Exact match may vary
293
+ free (result );
294
+ }
295
+
296
+ FOSSIL_TEST (c_test_io_soap_readability_score ) {
297
+ const char * input = "This sentence is simple." ;
298
+ float score = fossil_io_soap_evaluate_readability (input );
299
+ ASSUME (score > 60.0 ); // basic readability check
300
+ }
301
+
302
+ FOSSIL_TEST (c_test_io_soap_politeness_score_polite ) {
303
+ const char * input = "Could you please help me with this?" ;
304
+ float score = fossil_io_soap_politeness_score (input );
305
+ ASSUME (score > 0.8f );
306
+ }
307
+
308
+ FOSSIL_TEST (c_test_io_soap_politeness_score_rude ) {
309
+ const char * input = "Do it now." ;
310
+ float score = fossil_io_soap_politeness_score (input );
311
+ ASSUME (score < 0.3f );
312
+ }
313
+
218
314
// * * * * * * * * * * * * * * * * * * * * * * * *
219
315
// * Fossil Logic Test Pool
220
316
// * * * * * * * * * * * * * * * * * * * * * * * *
@@ -242,6 +338,20 @@ FOSSIL_TEST_GROUP(c_soap_tests) {
242
338
FOSSIL_TEST_ADD (c_soap_suite , c_test_io_soap_suggest_with_special_chars );
243
339
FOSSIL_TEST_ADD (c_soap_suite , c_test_io_soap_suggest_with_newlines );
244
340
FOSSIL_TEST_ADD (c_soap_suite , c_test_io_soap_suggest_with_tabs );
341
+ FOSSIL_TEST_ADD (c_soap_suite , c_test_io_soap_detect_sentiment_positive );
342
+ FOSSIL_TEST_ADD (c_soap_suite , c_test_io_soap_detect_sentiment_negative );
343
+ FOSSIL_TEST_ADD (c_soap_suite , c_test_io_soap_detect_sentiment_neutral );
344
+ FOSSIL_TEST_ADD (c_soap_suite , c_test_io_soap_detect_harmful_content );
345
+ FOSSIL_TEST_ADD (c_soap_suite , c_test_io_soap_normalize_slang );
346
+ FOSSIL_TEST_ADD (c_soap_suite , c_test_io_soap_correct_grammar );
347
+ FOSSIL_TEST_ADD (c_soap_suite , c_test_io_soap_filter_offensive );
348
+ FOSSIL_TEST_ADD (c_soap_suite , c_test_io_soap_detect_clickbait );
349
+ FOSSIL_TEST_ADD (c_soap_suite , c_test_io_soap_detect_exaggeration );
350
+ FOSSIL_TEST_ADD (c_soap_suite , c_test_io_soap_detect_fallacy );
351
+ FOSSIL_TEST_ADD (c_soap_suite , c_test_io_soap_summarize );
352
+ FOSSIL_TEST_ADD (c_soap_suite , c_test_io_soap_readability_score );
353
+ FOSSIL_TEST_ADD (c_soap_suite , c_test_io_soap_politeness_score_polite );
354
+ FOSSIL_TEST_ADD (c_soap_suite , c_test_io_soap_politeness_score_rude );
245
355
246
356
FOSSIL_TEST_REGISTER (c_soap_suite );
247
357
}
0 commit comments