// GSD feature registry (katalog) testleri — saf veri, Cekirdek/Sahne GEREKMEZ. // Sistem-seviye (feature→node) testi tam Cekirdek yiginini ister; burada registry // tutarliligi kilitlenir: her yeni feature grup/id/sema regresyonuna karsi korunur. #include #include #include "fiko/gsd/gsd_registry.hpp" #include "fiko_test.hpp" using namespace fiko; using namespace fiko::gsd; FIKO_TEST(gsd_registry_tanimlar_gecerli) { const auto& t = gsdTanimlari(); FIKO_KONTROL(t.size() >= 20); // kurulu feature seti (wireframe+yuzey+op) std::set idler; for (const auto& f : t) { FIKO_KONTROL(!f.id.empty()); FIKO_KONTROL(!f.ad.empty()); const bool grupOk = f.grup == "GSD-Tel" || f.grup == "GSD-Yuzey" || f.grup == "GSD-YuzeyOp" || f.grup == "GSD-2Kaynak"; FIKO_KONTROL(grupOk); // grup bilinen 4 gruptan biri FIKO_KONTROL(idler.insert(f.id).second); // cift id yok } } FIKO_TEST(gsd_registry_bilinen_idler) { const char* idler[] = {"nokta", "cizgi", "cember", "spline", "polyline", "helix", "konik", "kose", "yuzeyExtrude", "yuzeyRevolve", "yuzeyFill", "yuzeyOffset", "yuzeyExtrapolate", "yuzeyThicken", "sinir", "afin", "yuzeyCikart", "kesisimEgri", "birlestir", "onar"}; for (const char* id : idler) FIKO_KONTROL(gsdTanimBul(id) != nullptr); FIKO_KONTROL(gsdTanimBul("yokBoyleTip") == nullptr); } FIKO_TEST(gsd_grup_siniflama_ayrik) { // Her tanim icin sınıf helper'lari grubla tutarli + en fazla biri true. for (const auto& f : gsdTanimlari()) { const bool tel = gsdTelMi(f), yop = gsdKaynakYuzeyMi(f), iki = gsdIkiKaynakMi(f); FIKO_KONTROL((int)tel + (int)yop + (int)iki <= 1); // ayrik FIKO_KONTROL(tel == (f.grup == "GSD-Tel")); FIKO_KONTROL(yop == (f.grup == "GSD-YuzeyOp")); FIKO_KONTROL(iki == (f.grup == "GSD-2Kaynak")); } } FIKO_TEST(gsd_2kaynak_ve_yuzeyop_ornekleri) { // Kritik akis: kesisimEgri iki-kaynak; offset/onar yuzey-op; cember tel; fill yuzey. FIKO_KONTROL(gsdIkiKaynakMi(*gsdTanimBul("kesisimEgri"))); FIKO_KONTROL(gsdKaynakYuzeyMi(*gsdTanimBul("yuzeyOffset"))); FIKO_KONTROL(gsdKaynakYuzeyMi(*gsdTanimBul("onar"))); FIKO_KONTROL(gsdTelMi(*gsdTanimBul("cember"))); FIKO_KONTROL(!gsdTelMi(*gsdTanimBul("yuzeyFill"))); // GSD-Yuzey grubu FIKO_KONTROL(!gsdKaynakYuzeyMi(*gsdTanimBul("yuzeyFill"))); }