Kendi kodumu kullanarak kendi makalelerimde yayınlanan sonuçları kolayca nasıl çoğaltılır


15

Bir makalede sonuç elde etmek için kullandığım bir program / kütüphane yazdım. (Burada olduğunu ama benim sorum geneldir.) Ben kullanarak düzenli olarak yayınlanmasını testleri ctest(o dönemde birkaç dakika sürer). Makalede bazı tabloları veya rakamları yeniden oluşturmak için, belki 10 dakika, bazen daha fazla çalışan bir komut dosyası veya basit bir sürücü programı oluşturmak zorundayım, bu yüzden normal test paketinin bu bölümüne sahip olmak istemiyorum. Aynı zamanda, makalenin sonuçlarının olabileceğinden emin olmak istiyorum:

  • daha sonra çoğaltıldı
  • kütüphaneyi geliştirmeye devam ettikten sonra hala aynı / doğru sonuçları verdiklerinden emin olun

Şu anda normal test paketinin bir parçası olarak çalıştırdığım küçük bir sürücü programına çalışıyorum ve makaleden sonuçları çoğaltmak isterseniz, orada bazı satırları uncomment. Tabii ki, hangi kesin satırları asla bilmiyorum ve makalede olduğu gibi tam olarak aynı sonuçları elde etmek için başka parametreler ayarlamam gerekiyorsa.

Ayrıca makaleden kesin rakamları / tabloları hesaplayan bir Python komut dosyası var çalıştı. Böyle bir komut dosyası, kitaplıktaki bir güncellemeden sonra genellikle çalışmayı durdurur, çünkü düzenli olarak çalıştırılmaz (çok zaman alır).

Bana meydana gelen en iyi yöntem, düzenli olarak derlenecek (kütüphanenin bir parçası olarak) ancak normal test paketinde çalıştırılmayan bir Fortran (veya C / C ++) örneğine sahip olmaktır. Bu şekilde, en azından iyi derler biliyorum (ve umarım da çalışır). Ve bazı basit (küçük) örnekleri normal bir test paketinin parçası olarak test edeceğim.

Bu sorunu çözmenin en uygun yolları nelerdir?


2
Harika bir soru, ilk tepkim, testlerinizi hızlı bir şekilde gerçekleştirilebilen ve sürekli bir entegrasyon çabasının bir parçası olarak kullanmak istediğiniz her taahhüt ve daha uzun regresyondan önce gerçekleştirilen hızlı regresyonlara ayırmanız gerektiğidir. Özellikle sadece eski çeşidin testlerini yaptığınız ve henüz bölmediniz mi?
Aron Ahmadia

Hızlı çalışan birçok testim var , buraya bakın: github.com/certik/hfsolver/tree/master/src/tests , ancak makale için gerçek hesaplamaları nasıl yapacağımı bilmiyorum (örneğin, her tablo için 10 dakika) / figure toplamda kolayca birkaç saat verir).
Ondřej Čertík

2
Sürekli bir entegrasyon sunucusu kullanarak uzun testleri otomatik olarak gece (veya haftalık, aylık vb.) Yapın. Sonuçlardan başka bir şeye dikkat etmek zorunda olmadığınızdan, ne kadar sürdüğü umurumda değil.
David Ketcheson

Yanıtlar:


6

II.İşlemde, düzenli bir Unix Makefile tarafından yönlendirilen bir testitimiz var. Tüm olağan testleri çalıştıran varsayılan bir hedefe ve pahalı testler için ayrı bir hedefe sahiptir. Her testi çalıştırmak genel bir kural kullanılarak yapılır, ancak varsayılan hedef genel kuralı yalnızca belirli testler için çağırır ve pahalı hedef ise pahalı testler için çağırır. Her şey genel bir kural kullanılarak yapıldığı için, herhangi bir zamanda güncel olması gerekir ; güncel olmayanlar sadece test adlarının listesi olabilir.

Güncelleme: Yukarıdaki metin 2012 yılında doğruydu. 2014'ten beri, deal.II testi CTest'e dayanıyor, ancak genel fikir geçerli.


Teşekkürler! İşte dokümanların bağlantısı: dealii.org/7.2.0/development/testsuite.html#regression_tests ve "olağan testlerin" sonucu: dealii.org/cgi-bin/regression_quick.pl ve burada "pahalı testler": dealii.org/cgi-bin/regression.pl , doğru anladım mı? Yani her revizyonda "normal testler" ve sadece her revizyon için "pahalı testler" mi yapıyorsunuz?
Ondřej Čertík

Pek değil. Pahalı testlerin sonuçları genellikle web sitesine gönderilmez.
Wolfgang Bangerth

Diyelim ki her sürümden önce bunları manuel olarak mı çalıştırıyorsunuz? Kaçmak ne kadar sürer? Yaklaşımını seviyorum.
Ondřej Čertík

1
Evet, elle. Arada bir, kesin olarak çıkmadan önce. Bazı projeler için bir saat veya daha fazla zaman alırlar, ancak kütüphanenin sadece küçük bir bölümünü test ettikleri için (çoğunlukla eklenti projelerini test etmek için test ederler. II) her revizyonda onları çalıştırmak her zaman değer veya olası değildir.
Wolfgang Bangerth

Yalnızca süper bilgisayarlarda çalışabilen paralel testleriniz var mı, örneğin büyük ölçekli testlere karşı p4est?
Aron Ahmadia
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.