#include "fiko/cam/sac_metal.hpp" #include "fiko_test.hpp" using namespace fiko::cam; FIKO_TEST(sac_tek_bukum) { // İki 10 mm flanş + 90° büküm (r=1, t=1, K=0.33). // BA = (π/2)·(1 + 0.33·1) = 1.5707963·1.33 ≈ 2.089159 SacParca p; p.kalinlik = 1.0; p.kFaktor = 0.33; p.flanslar = {10.0, 10.0}; p.bukumler = {{90.0, 1.0}}; AcilimSonuc s = sacAcilim(p); FIKO_KONTROL(s.bukumPaylari.size() == 1); FIKO_YAKIN(s.bukumPaylari[0], 2.089159, 1e-5); FIKO_YAKIN(s.duzUzunluk, 22.089159, 1e-5); } FIKO_TEST(sac_bukumsuz_tek_flans) { SacParca p; p.flanslar = {50.0}; AcilimSonuc s = sacAcilim(p); FIKO_KONTROL(s.bukumPaylari.empty()); FIKO_YAKIN(s.duzUzunluk, 50.0, 1e-9); } FIKO_TEST(sac_bos) { AcilimSonuc s = sacAcilim(SacParca{}); FIKO_KONTROL(s.duzUzunluk == 0); FIKO_KONTROL(s.bukumPaylari.empty()); } FIKO_TEST(sac_coklu_bukum) { // 3 flanş (10+20+10) + 2×(90°, r1), t1, K0.33 → 40 + 2·2.089159 SacParca p; p.kalinlik = 1.0; p.kFaktor = 0.33; p.flanslar = {10.0, 20.0, 10.0}; p.bukumler = {{90.0, 1.0}, {90.0, 1.0}}; AcilimSonuc s = sacAcilim(p); FIKO_KONTROL(s.bukumPaylari.size() == 2); FIKO_YAKIN(s.duzUzunluk, 44.178318, 1e-5); } FIKO_TEST(sac_kfaktor_etkisi) { // Yüksek K → daha uzun büküm payı (nötr eksen dışa kayar). SacParca a; a.kalinlik = 2.0; a.kFaktor = 0.3; a.flanslar = {5, 5}; a.bukumler = {{90.0, 1.0}}; SacParca b = a; b.kFaktor = 0.5; FIKO_KONTROL(sacAcilim(b).duzUzunluk > sacAcilim(a).duzUzunluk); }