18 / 20 · Konsep
Rancang pengujian bertanda dan batas
Gabungkan batas aritmetika, bentuk, dan kendali melampaui satu contoh jalur normal.
Pelajaran dapat dibaca gratis. Daftar untuk menyimpan progres.
Pilih masukan yang membedakan kesalahan
Contoh positif 2×2 mengungkap penggeseran jadwal dan pengindeksan, tetapi bukan perluasan tanda atau saturasi. Matriks seluruhnya satu membantu memeriksa hitungan tetapi dapat menyembunyikan transposisi. Gunakan nilai asimetris, negatif, nol, serta baris dan kolom berbeda.
A=[[2,−1],[0,3]] dan B=[[4,5],[−2,1]] menghasilkan [[10,9],[−6,3]]. Ini mencakup keluaran positif dan negatif serta nol valid. B identitas harus menghasilkan kembali A. B nol harus menghasilkan keluaran nol sementara setiap PE tetap mengonsumsi K suku.
Untuk W=8, K=4, minimum×minimum berulang menghasilkan 65536; minimum×maksimum berulang menghasilkan −65024; maksimum×maksimum berulang menghasilkan 64516. Semuanya muat dalam AW=18. Menguji hanya operand positif terbesar melewatkan hasil perkalian positif terbesar.
Untuk baris A [−128,−128,127,127] dan kolom B [−128,127,−128,127], hasil perkaliannya [16384,−16256,−16256,16129]. Jumlahnya satu, dengan jumlah awalan [16384,128,−16128,1]. Hasil akhir kecil tidak membenarkan akumulator antara yang sempit.
Cakup batas bentuk dan kendali
N=1,K=1 selesai setelah E0. N=3,K=1 tetap selesai setelah E4 karena operand melintasi kisi. N=1,K=5 adalah hasil kali titik lima tepi tanpa penggeseran spasial. Menguji K=1,2,3,4 melintasi batas lebar penghitung, terutama perbedaan antara penyimpanan K−1 dan K.
Sisipkan jeda sebelum MAC pertama, di tengah reduksi, dan sebelum MAC terakhir. Blokir keluaran setelah penyelesaian. Lakukan reset setelah clear, di tengah pekerjaan, dan saat hasil valid menunggu. Keluaran pekerjaan lama setelah reset merupakan kegagalan. Bandingkan bentuk tile yang habis dibagi dengan bentuk yang menyisakan satu baris atau kolom; verifikasi mask berdasarkan koordinat.
Untuk setiap kasus lulus, tentukan matriks, daftar suku yang dikonsumsi secara tepat, jumlah tepi advance, jumlah jeda, dan koordinat keluaran yang dikirim. Pengujian negatif membutuhkan kategori kesalahan yang diharapkan. Pisahkan pemeriksaan akumulator tepat dari kuantisasi keluaran. Fixture batas tetap ditambah pengujian acak dengan seed membuat kegagalan dapat direproduksi sambil memperluas cakupan melampaui satu contoh.
Coba sendiri
Untuk N=3,K=1, cari nomor tepi terakhir dan jumlah tepi. Cari juga jumlah empat suku minimum×maksimum untuk W=8,K=4.
Baca penjelasan
Nomor tepi terakhir adalah 1+6−3=4, sehingga ada lima tepi E0..E4. Satu hasil perkalian minimum×maksimum adalah −16256; empat suku berjumlah −65024.