// slap_test.cpp - test van slapVerwacht() op de inspecties van augustus 2026 (g++ -Wall -o slap_test slap_test.cpp)
#include <cstdio>

// slap.h - de beslisboom van hoofdstuk 39, getraind op de inspecties van juni en juli 2026.
// licht_klx: daglicht op de lichtsensor (klx); vocht_pct: relatieve vochtigheid van de lucht (SHT31).
bool slapVerwacht(float licht_klx, float vocht_pct) {
  if (licht_klx <= 29.5) {
    return false;                  // weinig licht: de sla verdampt weinig
  }
  if (vocht_pct <= 60.5) {
    return true;                   // veel licht en droge lucht: slap verwacht
  }
  return false;                    // veel licht, maar vochtige lucht
}

struct Inspectie { const char* tijd; float licht; float vocht; int slap; };

int main() {
  Inspectie data[] = {
    {"2026-08-02 11:00", 47, 44, 1},
    {"2026-08-02 14:00", 51, 61, 1},
    {"2026-08-02 17:00", 33, 50, 1},
    {"2026-08-03 11:00", 15, 61, 0},
    {"2026-08-03 14:00", 13, 75, 0},
    {"2026-08-03 17:00", 13, 79, 0},
    {"2026-08-04 11:00", 36, 60, 1},
    {"2026-08-04 14:00", 36, 56, 1},
    {"2026-08-04 17:00", 28, 55, 0},
    {"2026-08-05 11:00", 48, 50, 1},
    {"2026-08-05 14:00", 56, 49, 1},
    {"2026-08-05 17:00", 35, 48, 1},
    {"2026-08-06 11:00", 25, 69, 0},
    {"2026-08-06 14:00", 25, 61, 0},
    {"2026-08-06 17:00", 16, 64, 0},
    {"2026-08-07 11:00", 30, 64, 1},
    {"2026-08-07 14:00", 31, 67, 0},
    {"2026-08-07 17:00", 18, 64, 0},
    {"2026-08-08 11:00", 7, 72, 0},
    {"2026-08-09 17:00", 9, 77, 0},
    {"2026-08-10 11:00", 5, 70, 0},
    {"2026-08-10 14:00", 2, 75, 0},
    {"2026-08-10 17:00", 0, 85, 0},
    {"2026-08-11 11:00", 30, 59, 0},
    {"2026-08-11 14:00", 29, 71, 0},
    {"2026-08-11 17:00", 25, 64, 0},
    {"2026-08-12 11:00", 21, 63, 0},
    {"2026-08-12 14:00", 22, 70, 0},
    {"2026-08-12 17:00", 18, 69, 0},
    {"2026-08-13 11:00", 24, 59, 0},
    {"2026-08-13 14:00", 28, 54, 0},
    {"2026-08-13 17:00", 19, 76, 0},
    {"2026-08-14 11:00", 13, 71, 0},
    {"2026-08-14 14:00", 8, 74, 0},
    {"2026-08-14 17:00", 6, 73, 0},
    {"2026-08-15 14:00", 47, 65, 0},
    {"2026-08-16 11:00", 6, 74, 0},
    {"2026-08-16 17:00", 12, 73, 1},
    {"2026-08-17 11:00", 49, 43, 1},
    {"2026-08-17 14:00", 47, 50, 1},
    {"2026-08-17 17:00", 35, 66, 1},
    {"2026-08-18 11:00", 31, 73, 0},
    {"2026-08-18 14:00", 33, 68, 0},
    {"2026-08-18 17:00", 26, 67, 0},
    {"2026-08-19 11:00", 16, 77, 0},
    {"2026-08-19 14:00", 22, 68, 0},
    {"2026-08-19 17:00", 11, 60, 0},
    {"2026-08-20 11:00", 45, 55, 1},
    {"2026-08-20 14:00", 46, 49, 1},
    {"2026-08-20 17:00", 29, 51, 1},
    {"2026-08-21 11:00", 33, 71, 0},
    {"2026-08-21 14:00", 33, 67, 0},
    {"2026-08-21 17:00", 22, 67, 0},
    {"2026-08-22 17:00", 27, 71, 0},
    {"2026-08-23 17:00", 22, 64, 0},
    {"2026-08-24 11:00", 21, 65, 0},
    {"2026-08-24 14:00", 20, 67, 0},
    {"2026-08-24 17:00", 10, 73, 0},
    {"2026-08-25 11:00", 12, 69, 0},
    {"2026-08-25 14:00", 16, 76, 0},
    {"2026-08-25 17:00", 9, 76, 0},
    {"2026-08-26 11:00", 49, 50, 1},
    {"2026-08-26 14:00", 48, 55, 0},
    {"2026-08-26 17:00", 38, 60, 0},
    {"2026-08-27 11:00", 38, 59, 0},
    {"2026-08-27 14:00", 36, 67, 0},
    {"2026-08-27 17:00", 28, 71, 0},
    {"2026-08-28 11:00", 41, 62, 0},
    {"2026-08-28 14:00", 42, 53, 1},
    {"2026-08-28 17:00", 32, 54, 0},
    {"2026-08-30 11:00", 25, 68, 0},
    {"2026-08-31 11:00", 28, 53, 1},
    {"2026-08-31 14:00", 36, 66, 1},
    {"2026-08-31 17:00", 28, 63, 1}
  };
  int n = sizeof(data) / sizeof(data[0]);
  int juist = 0;
  for (int i = 0; i < n; i++) {
    bool v = slapVerwacht(data[i].licht, data[i].vocht);
    if ((int)v == data[i].slap) juist++;
    if (i < 6) printf("%s  licht %4.0f klx  vocht %3.0f %%  voorspeld %-9s genoteerd %s\n", data[i].tijd, data[i].licht,
                      data[i].vocht, v ? "slap" : "niet slap", data[i].slap ? "slap" : "niet slap");
  }
  printf("augustus: %d van %d juist\n", juist, n);
  return 0;
}
