< Summary - Backend C Tests - Coverage Report

Information
Class: report_service_c
Assembly: src.backend.database
File(s): C:\Users\yagiz\Desktop\Project\smart-maintenance-suite\src\backend\database\report_service.c
Line coverage
52%
Covered lines: 23
Uncovered lines: 21
Coverable lines: 44
Total lines: 93
Line coverage: 52.2%
Branch coverage
37%
Covered branches: 6
Total branches: 16
Branch coverage: 37.5%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Coverage history

Coverage history 0 25 50 75 100

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
generate_maintenance_csv_report0%000%
generate_inventory_csv_report0%000%
generate_maintenance_xml_report75%00100%
generate_inventory_xml_report75%00100%

File(s)

C:\Users\yagiz\Desktop\Project\smart-maintenance-suite\src\backend\database\report_service.c

#LineLine coverage
 1#include "report_service.h"
 2#include <stdio.h>
 3#include <stdlib.h>
 4#include <string.h>
 5
 6char *generate_maintenance_csv_report();
 7char *generate_inventory_csv_report();
 8char *generate_maintenance_xml_report();
 9char *generate_inventory_xml_report();
 10
 011char *generate_maintenance_csv_report() {
 12  MaintenanceLog logs[100];
 013  int count = get_all_maintenance_logs(logs, 100);
 14  // Tahmini buffer boyutu: her satır ~200 karakter + başlık
 015  char *report = (char *)malloc(count * 200 + 500);
 16
 017  if (!report) return NULL;
 18
 019  strcpy(report, "Log_ID,Machine_ID,Technician,Date,Description\n");
 20
 021  for (int i = 0; i < count; i++) {
 22    char line[256];
 23    // CSV formatında virgüllerle ayırıyoruz
 024    sprintf(line, "%d,%d,%s,%s,%s\n",
 025            logs[i].id, logs[i].machine_id, logs[i].technician_name,
 026            logs[i].log_date, logs[i].description);
 027    strcat(report, line);
 28  }
 29
 030  return report;
 31}
 32
 033char *generate_inventory_csv_report() {
 34  InventoryItem items[100];
 035  int count = get_all_inventory(items, 100);
 036  char *report = (char *)malloc(count * 200 + 500);
 37
 038  if (!report) return NULL;
 39
 040  strcpy(report, "Part_ID,Part_Name,SKU,Current_Quantity,Min_Stock\n");
 41
 042  for (int i = 0; i < count; i++) {
 43    char line[256];
 044    sprintf(line, "%d,%s,%s,%d,%d\n",
 045            items[i].id, items[i].part_name, items[i].sku,
 46            items[i].quantity, items[i].min_stock_level);
 047    strcat(report, line);
 48  }
 49
 050  return report;
 51}
 52
 253char *generate_maintenance_xml_report() {
 54  MaintenanceLog logs[100];
 255  int count = get_all_maintenance_logs(logs, 100);
 256  char *xml = (char *)malloc(count * 300 + 500);
 57
 258  if (!xml) return NULL;
 59
 260  strcpy(xml, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<MaintenanceReport>\n");
 61
 462  for (int i = 0; i < count; i++) {
 63    char item[512];
 264    sprintf(item, "  <Log>\n    <ID>%d</ID>\n    <MachineID>%d</MachineID>\n    <Technician>%s</Technician>\n    <Date>%
 265            logs[i].id, logs[i].machine_id, logs[i].technician_name,
 266            logs[i].log_date, logs[i].description);
 267    strcat(xml, item);
 68  }
 69
 270  strcat(xml, "</MaintenanceReport>");
 271  return xml;
 72}
 73
 274char *generate_inventory_xml_report() {
 75  InventoryItem items[100];
 276  int count = get_all_inventory(items, 100);
 277  char *xml = (char *)malloc(count * 300 + 500);
 78
 279  if (!xml) return NULL;
 80
 281  strcpy(xml, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<InventoryReport>\n");
 82
 483  for (int i = 0; i < count; i++) {
 84    char item[512];
 285    sprintf(item, "  <Item>\n    <ID>%d</ID>\n    <Name>%s</Name>\n    <SKU>%s</SKU>\n    <Quantity>%d</Quantity>\n    <
 286            items[i].id, items[i].part_name, items[i].sku,
 87            items[i].quantity, items[i].min_stock_level);
 288    strcat(xml, item);
 89  }
 90
 291  strcat(xml, "</InventoryReport>");
 292  return xml;
 93}