yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
7b570feed
master
1// unit-test-path.cpp 2 3#include "core/slang-basic.h" 4#include "unit-test/slang-unit-test.h" 5 6using namespace Slang ; 7 8template < typename T > 9static bool _checkArrayView (ArrayView < T > v0 ,ArrayView < T > v1 ) 10{ 11if (v0 .getCount ()!= v1 .getCount ()) 12return false; 13for (Index i = 0 ;i < v0 .getCount ();i ++ ) 14if (v0 [i ]!= v1 [i ]) 15return false; 16return true; 17} 18 19SLANG_UNIT_TEST (shortList ) 20{ 21 { 22ShortList < String ,4 > shortList = {"a" ,"b" ,"c" }; 23shortList .add ("d" ); 24auto arrayView = shortList .getArrayView (); 25SLANG_CHECK (arrayView .ownsStorage == false); 26SLANG_CHECK ( 27_checkArrayView (arrayView .arrayView ,List < String > {"a" ,"b" ,"c" ,"d" }.getArrayView ())); 28shortList .add ("e" ); 29auto arrayView2 = shortList .getArrayView (); 30SLANG_CHECK (arrayView2 .ownsStorage == true); 31SLANG_CHECK (_checkArrayView ( 32arrayView2 .arrayView , 33List < String > {"a" ,"b" ,"c" ,"d" ,"e" }.getArrayView ())); 34auto arrayView3 = shortList .getArrayView (0 ,2 ); 35SLANG_CHECK (arrayView3 .ownsStorage == false); 36SLANG_CHECK (_checkArrayView (arrayView3 .arrayView ,List < String > {"a" ,"b" }.getArrayView ())); 37auto arrayView4 = shortList .getArrayView (4 ,1 ); 38SLANG_CHECK (arrayView4 .ownsStorage == false); 39SLANG_CHECK (_checkArrayView (arrayView4 .arrayView ,List < String > {"e" }.getArrayView ())); 40auto arrayView5 = shortList .getArrayView (2 ,3 ); 41SLANG_CHECK (arrayView5 .ownsStorage == true); 42SLANG_CHECK ( 43_checkArrayView (arrayView5 .arrayView ,List < String > {"c" ,"d" ,"e" }.getArrayView ())); 44 45ShortList < String ,1 > copy2 ; 46ShortList < String ,2 > copy1 ; 47copy1 = shortList ; 48for (auto item :copy1 ) 49copy2 .add (item ); 50SLANG_CHECK (_checkArrayView ( 51copy2 .getArrayView ().arrayView , 52List < String > {"a" ,"b" ,"c" ,"d" ,"e" }.getArrayView ())); 53 54SLANG_CHECK (copy2 .indexOf ("a" )== 0 ); 55SLANG_CHECK (copy2 .indexOf ("e" )== 4 ); 56 57SLANG_CHECK (copy2 .lastIndexOf ("a" )== 0 ); 58SLANG_CHECK (copy2 .lastIndexOf ("e" )== 4 ); 59 60copy2 .compress (); 61copy2 .add ("f" ); 62copy2 .fastRemove ("c" ); 63copy2 .compress (); 64SLANG_CHECK (_checkArrayView ( 65copy2 .getArrayView ().arrayView , 66List < String > {"a" ,"b" ,"f" ,"d" ,"e" }.getArrayView ())); 67 68shortList .removeLast (); 69shortList .removeLast (); 70shortList .compress (); 71SLANG_CHECK (_checkArrayView ( 72shortList .getArrayView ().arrayView , 73List < String > {"a" ,"b" ,"c" }.getArrayView ())); 74shortList .add ("d" ); 75shortList .add ("e" ); 76SLANG_CHECK (_checkArrayView ( 77shortList .getArrayView ().arrayView , 78List < String > {"a" ,"b" ,"c" ,"d" ,"e" }.getArrayView ())); 79 } 80}