इस प्रोजेक्ट के बारे में

MathAssertions.TUnit, TUnit फ्रेमवर्क के लिए एक .NET टेस्ट-ओनली असेर्शन लाइब्रेरी है और DotNetAssertions परिवार का हिस्सा है। यह प्रोडक्शन कोड के लिए नहीं है। रिपॉज़िटरी दो NuGet पैकेज शिप करती है: MathAssertions, जो फ्रेमवर्क-अज्ञेयवादी कोर है जिसमें स्टैटिक हेल्पर क्लासेस और ज्योमेट्री प्रिमिटिव्स हैं, और MathAssertions.TUnit, जो TUnit अडैप्टर है जो बारह अडैप्टर क्लासेस में लगभग 85 फ्लुएंट एंट्री पॉइंट्स एक्सपोज़ करता है। फ्लुएंट एंट्री पॉइंट्स TUnit के [GenerateAssertion] सोर्स जनरेटर से जनरेट होते हैं और Assert.That(value).Method(...) में इंटीग्रेट होते हैं। आवश्यकताएँ TUnit 1.66.27 या बाद का संस्करण और .NET 10 हैं; असेर्शन पाथ कोई रनटाइम रिफ्लेक्शन उपयोग नहीं करता और AOT-संगत तथा ट्रिमेबल है। कवरेज में स्केलर्स, System.Numerics कंपाउंड्स (Vector2/3/4, Quaternion, Matrix4x4, Plane, Complex), स्पैन्स, और जेनेरिक ReadOnlyTensorSpan के लिए टॉलरेंस तुलनाएँ शामिल हैं; क्वाटरनियन रोटेशनल इक्विवेलेंस जो SO(3) डबल कवर को संभालता है; एक्सिस-एंगल फॉर्म असेर्शन्स; संयुक्त पोज़ और रिजिड ट्रांसफॉर्म अनुमानित समानता जिसमें अलग पोज़िशन और रोटेशन टॉलरेंस हैं; मोनोटोनिसिटी, सॉर्टेडनेस, बाउंडेडनेस, प्रोग्रेशन्स, और कॉशी कन्वर्जेंस के लिए सीक्वेंस प्रेडिकेट्स; Welford मीन और वेरिएंस, मीडियन, परसेंटाइल, स्टैंडर्ड डेविएशन के माध्यम से स्टैटिस्टिक्स; Matrix4x4 और Vector3 जोड़ों के लिए लीनियर अलजेब्रा इनवेरिएंट्स; लॉन्ग-इंटीजर नंबर थ्योरी प्रेडिकेट्स जैसे डिविजिबिलिटी, ओवरफ्लो-सेफ प्राइमलिटी, कोप्राइमलिटी, GCD/LCM, परफेक्ट स्क्वायर, और मॉड्यूलर कॉन्ग्रुएंस; और एक 3D ज्योमेट्री सरफेस जिसमें आठ प्रिमिटिव रिकॉर्ड स्ट्रक्ट टाइप्स, कंटेनमेंट, क्लोसेस्ट-पॉइंट, इंटरसेक्शन, और पॉइंटक्लाउड एग्रीगेट चेक्स हैं। कंपाउंड टाइप्स के लिए फेल्योर मैसेजेस में प्रति-कंपोनेंट या प्रति-सेल डेल्टा और एक्सीडेड-एक्सिस डायग्नोस्टिक्स शामिल हैं। MathAssertions.Render नेमस्पेस PoseRenderer प्रदान करता है जो SnapshotAssertions.TUnit के साथ उपयोग के लिए पोज़िशन और ओरिएंटेशन पोज़ेस का डिटरमिनिस्टिक, स्नैपशॉट-फ्रेंडली टेक्स्ट रेंडरिंग करता है। डिज़ाइन विवरण: अनुमानित समानता यूक्लिडियन दूरी के बजाय कंपोनेंट-वाइज़ है, तुलना से पहले मानों को double में चौड़ा किया जाता है ताकि double टॉलरेंस पूर्ण परिशुद्धता पर मान्य हो, और NaN तथा infinity सेमांटिक्स को TUnit के IsCloseTo प्रिमिटिव से मेल खाते हुए प्रलेखित किया गया है। साथी MathAssertions पैकेज को अन्य टेस्ट फ्रेमवर्क्स द्वारा पुनः उपयोग किया जा सकता है, लेकिन NUnit, xUnit, या MSTest के लिए अडैप्टर्स वर्तमान में शिप नहीं किए जाते। ReadOnlyTensorSpan केवल स्टैटिक MathTolerance स्तर पर एक्सपोज़ किया जाता है क्योंकि TUnit का [GenerateAssertion] बिल्डर await के दौरान ref-struct मानों को कैप्चर नहीं कर सकता। README यह भी दिखाता है कि DSL को कंज़्यूमर-परिभाषित डोमेन टाइप्स तक एक-पंक्ति [GenerateAssertion] एक्सटेंशन के साथ कैसे बढ़ाया जाए, protobuf पोज़ मैसेजेस को System.Numerics टाइप्स में कैसे प्रोजेक्ट किया जाए, और असेर्शन्स को Assert.Multiple के साथ कैसे संयोजित किया जाए। लाइसेंस: MIT।