Regresi isotonik tanpa bobot
Cocokkan urutan tidak menurun terhadap maksimal 128 pengamatan berhingga dalam ±10^6 memakai kuadrat terkecil berbobot sama.
from math import isfinite
def isotonic_fit(values):
if type(values) is not list or len(values) > 128:
raise ValueError("bounded list")
if any(type(x) not in (int, float) or abs(x) > 10**6 or
not isfinite(x) for x in values):
raise ValueError("bounded finite values")
blocks = []
for value in values:
blocks.append([float(value), 1])
while len(blocks) > 1 and (
blocks[-2][0] / blocks[-2][1] > blocks[-1][0] / blocks[-1][1]):
total, count = blocks.pop()
blocks[-1][0] += total; blocks[-1][1] += count
return [total / count for total, count in blocks for _ in range(count)]Proyek
Uji masukan kosong dan menurun, tolak Boolean sambil menjaga daftar asli.
Tinjau sebelum menerapkan
Bandingkan perilaku sebenarnya dengan hasil yang diharapkan. Jika pemeriksaan gagal, cari penyebabnya sebelum membuat perubahan lain.
Model
Atur endpoint kompatibel OpenAI atau Anthropic dengan URL dasar dan kunci API jika diperlukan. Uji koneksi. Server model lokal harus berjalan; alat jarak jauh dapat mengirim data secara terpisah.
from math import isfinite
def isotonic_fit(values):
if type(values) is not list or len(values) > 128:
raise ValueError("bounded list")
if any(type(x) not in (int, float) or abs(x) > 10**6 or
not isfinite(x) for x in values):
raise ValueError("bounded finite values")
blocks = []
for value in values:
blocks.append([float(value), 1])
while len(blocks) > 1 and (
blocks[-2][0] / blocks[-2][1] > blocks[-1][0] / blocks[-1][1]):
total, count = blocks.pop()
blocks[-1][0] += total; blocks[-1][1] += count
return [total / count for total, count in blocks for _ in range(count)]Minta bukti yang membedakan perbaikan dari penulisan ulang yang tampak masuk akal
OrderSaffron adalah perangkat lunak pemrograman AI Windows untuk membuat usulan perubahan lebih mudah dievaluasi melalui pemeriksaan bermakna. Buka folder proyek dan jelaskan perilaku yang membutuhkan bukti. Model terhubung dapat membantu memeriksa implementasi dan pengujian bersama-sama, sehingga percakapan mempertanyakan apakah asersi menangkap persyaratan, bukan sekadar apakah kode saat ini memenuhinya.
Contoh isotonic_fit.py menawarkan tugas menghasilkan urutan hasil penyesuaian yang tidak menurun. Berikan masukan kecil dengan hasil harapan yang diketahui dan tanyakan kasus mana yang membedakan perilaku yang dimaksud dari keluaran yang hanya tampak terurut. Sertakan nilai sama dan masukan yang sudah terurut. Contoh ini merupakan latihan peninjauan proyek; bukan berarti ruang kerja menyertakan produk pencocokan numerik atau layanan sertifikasi pengujian otomatis.
Model AI tanpa filter dapat dipilih jika endpoint kompatibel OpenAI atau endpoint Anthropic yang didukung menyediakannya. Konfigurasikan detail koneksi yang diperlukan dan nilai batas alat serta konteks model. Tinjau tambalan sumber maupun usulan pengujiannya sebelum menjalankan pemeriksaan proyek. Pertahankan ekspektasi independen dan laporkan kekurangan apa pun. Hasil lulus hanya merupakan bukti berguna ketika pengujian menjalankan kontrak yang ingin Anda pertahankan atau ubah.
Menilai kumpulan pengujian numerik yang diusulkan
- Mengapa memeriksa urutan tidak menurun saja tidak cukup?
Banyak keluaran dapat terurut tanpa menjadi hasil penyesuaian yang diwajibkan. Sertakan hasil harapan kecil yang dihitung secara independen dan sifat kontrak lain, seperti panjang keluaran. Tanyakan kesalahan implementasi apa yang akan dideteksi setiap pemeriksaan sebelum menerima kumpulan pengujian sebagai bukti.
- Haruskah masukan yang sudah terurut dimasukkan dalam pengujian?
Ya, ketika perilaku yang dimaksud adalah mempertahankannya. Kasus demikian dapat mengungkap perubahan yang tidak perlu atau kesalahan indeks. Nyatakan nilai harapan secara eksplisit dan sertakan entri berulang agar kesamaan diuji selain masukan yang meningkat ketat.
- Bisakah asisten menulis kode sekaligus pengujian?
Asisten dapat mengusulkan keduanya dalam batas alat yang tersedia, tetapi tinjau penalarannya secara independen. Pengujian yang berasal dari asumsi keliru yang sama dapat sejalan dengan implementasi cacat. Gunakan persyaratan eksternal atau contoh yang diperiksa manual sebagai dasar hasil harapan.
- Bagaimana melaporkan verifikasi yang tidak lengkap?
Pisahkan pemeriksaan yang benar-benar dijalankan dari pemeriksaan usulan dan asumsi yang belum terselesaikan. Sertakan kegagalan dan keterbatasan lingkungan alih-alih menganggap ketiadaan keluaran sebagai keberhasilan. Ini memberi peninjau berikutnya gambaran jelas tentang apa yang dibuktikan tambalan dan apa yang masih belum pasti.
OrderSaffron · Diperbarui 2026-10-25