1- using SharpGen . CppModel ;
1+ using System . Linq ;
2+ using SharpGen . Config ;
3+ using SharpGen . CppModel ;
24using SharpGen . Transform ;
35using Xunit ;
46
@@ -12,30 +14,75 @@ public void ShortNamingRules()
1214 var manager = new NamingRulesManager ( ) ;
1315
1416 manager . AddShortNameRule ( "DESC" , "Description" ) ;
15- var paramNameList = manager . Rename (
17+
18+ var parameters = new [ ]
19+ {
20+ new CppParameter ( "pShaderDESC" ) ,
21+ new CppParameter ( "pShaderDESC" ) { Pointer = "*" } ,
22+ new CppParameter ( "pShader_DESC" ) { Pointer = "*" } ,
23+ new CppParameter ( "p0" ) { Pointer = "*" } ,
24+ new CppParameter ( "p0" ) { Pointer = "*" } ,
25+ new CppParameter ( "0" ) ,
26+ new CppParameter ( "break" ) ,
27+ new CppParameter ( "void" ) ,
28+ new CppParameter ( "string" )
29+ } ;
30+
31+ Assert . Equal (
32+ new [ ]
33+ {
34+ "pShaderDESC" ,
35+ "shaderDESCRef" ,
36+ "shaderDescriptionRef" ,
37+ "p0" ,
38+ "p01" ,
39+ "arg0" ,
40+ "@break" ,
41+ "@void" ,
42+ "text" ,
43+ } ,
44+ manager . Rename ( parameters )
45+ ) ;
46+
47+ foreach ( var cppParameter in parameters )
48+ cppParameter . Rule . NamingFlags = NamingFlags . NoHungarianNotationHandler ;
49+
50+ Assert . Equal (
51+ new [ ]
52+ {
53+ "pShaderDESC" ,
54+ "pShaderDESC1" ,
55+ "pShaderDescription" ,
56+ "p0" ,
57+ "p01" ,
58+ "arg0" ,
59+ "@break" ,
60+ "@void" ,
61+ "text" ,
62+ } ,
63+ manager . Rename ( parameters )
64+ ) ;
65+
66+ foreach ( var cppParameter in parameters )
67+ cppParameter . Rule . NamingFlags = NamingFlags . NoShortNameExpand | NamingFlags . KeepUnderscore |
68+ NamingFlags . NoHungarianNotationHandler | NamingFlags . NoPrematureBreak ;
69+
70+ Assert . Equal (
1671 new [ ]
1772 {
18- new CppParameter ( "pShaderDESC" ) ,
19- new CppParameter ( "pShaderDESC" ) { Pointer = "*" } ,
20- new CppParameter ( "pShader_DESC" ) { Pointer = "*" } ,
21- new CppParameter ( "p0" ) { Pointer = "*" } ,
22- new CppParameter ( "p0" ) { Pointer = "*" } ,
23- new CppParameter ( "0" ) ,
24- new CppParameter ( "break" ) ,
25- new CppParameter ( "void" ) ,
26- new CppParameter ( "string" )
27- }
73+ "pShaderDESC" ,
74+ "pShaderDESC1" ,
75+ "pShader_Desc" ,
76+ "p0" ,
77+ "p01" ,
78+ "arg0" ,
79+ "@break" ,
80+ "@void" ,
81+ "text" ,
82+ } ,
83+ manager . Rename ( parameters )
2884 ) ;
29- Assert . Equal ( 9 , paramNameList . Count ) ;
30- Assert . Equal ( "pShaderDESC" , paramNameList [ 0 ] ) ;
31- Assert . Equal ( "shaderDESCRef" , paramNameList [ 1 ] ) ;
32- Assert . Equal ( "shaderDescriptionRef" , paramNameList [ 2 ] ) ;
33- Assert . Equal ( "p0" , paramNameList [ 3 ] ) ;
34- Assert . Equal ( "p01" , paramNameList [ 4 ] ) ;
35- Assert . Equal ( "arg0" , paramNameList [ 5 ] ) ;
36- Assert . Equal ( "@break" , paramNameList [ 6 ] ) ;
37- Assert . Equal ( "@void" , paramNameList [ 7 ] ) ;
38- Assert . Equal ( "text" , paramNameList [ 8 ] ) ;
85+
3986 Assert . Equal ( "ShaderDESC" , manager . Rename ( new CppInterface ( "ShaderDESC" ) ) ) ;
4087 Assert . Equal ( "ShaderDescription" , manager . Rename ( new CppInterface ( "Shader_DESC" ) ) ) ;
4188 Assert . Equal ( "ShaderDescription" , manager . Rename ( new CppInterface ( "SHADER_DESC" ) ) ) ;
@@ -55,5 +102,72 @@ public void LongerRuleTakesPrecedent()
55102
56103 Assert . Equal ( "RawDeviceInformation" , manager . Rename ( new CppStruct ( "RAW_DEVICE_INFORMATION" ) ) ) ;
57104 }
105+
106+ [ Fact ]
107+ public void Destination ( )
108+ {
109+ var manager = new NamingRulesManager ( ) ;
110+
111+ manager . AddShortNameRule ( "DST" , "Destination" ) ;
112+ manager . AddShortNameRule ( "DEST" , "Destination" ) ;
113+
114+ CppEnum cppEnum = new ( "COLORMANAGEMENT_PROP" ) ;
115+ cppEnum . AddEnumItem ( "COLORMANAGEMENT_PROP_SOURCE_COLOR_CONTEXT" , "0" ) ;
116+ cppEnum . AddEnumItem ( "COLORMANAGEMENT_PROP_SOURCE_RENDERING_INTENT" , "1" ) ;
117+ cppEnum . AddEnumItem ( "COLORMANAGEMENT_PROP_DESTINATION_COLOR_CONTEXT" , "2" ) ;
118+ cppEnum . AddEnumItem ( "COLORMANAGEMENT_PROP_DESTINATION_RENDERING_INTENT" , "3" ) ;
119+ cppEnum . AddEnumItem ( "COLORMANAGEMENT_PROP_ALPHA_MODE" , "4" ) ;
120+ cppEnum . AddEnumItem ( "COLORMANAGEMENT_PROP_QUALITY" , "5" ) ;
121+
122+ Assert . Equal ( "ColormanagementProp" , manager . Rename ( cppEnum ) ) ;
123+
124+ Assert . Equal (
125+ new [ ]
126+ {
127+ "SourceColorContext" ,
128+ "SourceRenderingIntent" ,
129+ "DestinationInationColorContext" ,
130+ "DestinationInationRenderingIntent" ,
131+ "AlphaMode" ,
132+ "Quality" ,
133+ } ,
134+ RenameEnumItems ( )
135+ ) ;
136+
137+ foreach ( var cppEnumItem in cppEnum . EnumItems )
138+ cppEnumItem . Rule . NamingFlags = NamingFlags . NoShortNameExpand ;
139+
140+ Assert . Equal (
141+ new [ ]
142+ {
143+ "SourceColorContext" ,
144+ "SourceRenderingIntent" ,
145+ "DestinationColorContext" ,
146+ "DestinationRenderingIntent" ,
147+ "AlphaMode" ,
148+ "Quality" ,
149+ } ,
150+ RenameEnumItems ( )
151+ ) ;
152+
153+ foreach ( var cppEnumItem in cppEnum . EnumItems )
154+ cppEnumItem . Rule . NamingFlags = NamingFlags . NoShortNameExpand | NamingFlags . KeepUnderscore |
155+ NamingFlags . NoHungarianNotationHandler | NamingFlags . NoPrematureBreak ;
156+
157+ Assert . Equal (
158+ new [ ]
159+ {
160+ "Source_Color_Context" ,
161+ "Source_Rendering_Intent" ,
162+ "Destination_Color_Context" ,
163+ "Destination_Rendering_Intent" ,
164+ "Alpha_Mode" ,
165+ "Quality" ,
166+ } ,
167+ RenameEnumItems ( )
168+ ) ;
169+
170+ string [ ] RenameEnumItems ( ) => cppEnum . EnumItems . Select ( x => manager . Rename ( x , cppEnum . Name ) ) . ToArray ( ) ;
171+ }
58172 }
59173}
0 commit comments