@@ -76,18 +76,26 @@ private IPAddress GetBaseAddress(IPAddress address, int prefix)
7676 _ => throw new ArgumentOutOfRangeException ( $ "Unexpected address family { address . AddressFamily } of { address } .")
7777 } ;
7878
79- [ Theory ]
80- [ MemberData ( nameof ( ValidIPNetworkData ) ) ]
81- public void Constructor_Valid_Succeeds ( string input )
79+ private ( IPAddress , IPAddress , int , string ) ParseInput ( string input )
8280 {
8381 string [ ] splitInput = input . Split ( '/' ) ;
8482 IPAddress address = IPAddress . Parse ( splitInput [ 0 ] ) ;
8583 int prefixLength = int . Parse ( splitInput [ 1 ] ) ;
84+ IPAddress baseAddress = GetBaseAddress ( address , prefixLength ) ;
85+ return ( address , baseAddress , prefixLength , $ "{ baseAddress } /{ prefixLength } ") ;
86+ }
87+
88+ [ Theory ]
89+ [ MemberData ( nameof ( ValidIPNetworkData ) ) ]
90+ public void Constructor_Valid_Succeeds ( string input )
91+ {
92+ var ( address , baseAddress , prefixLength , toString ) = ParseInput ( input ) ;
8693
8794 IPNetwork network = new IPNetwork ( address , prefixLength ) ;
8895
89- Assert . Equal ( GetBaseAddress ( address , prefixLength ) , network . BaseAddress ) ;
96+ Assert . Equal ( baseAddress , network . BaseAddress ) ;
9097 Assert . Equal ( prefixLength , network . PrefixLength ) ;
98+ Assert . Equal ( toString , network . ToString ( ) ) ;
9199 }
92100
93101 [ Fact ]
@@ -155,8 +163,15 @@ public void Parse_ValidNetworkNotation_Succeeds(string input)
155163 var stringParsedNetwork = IPNetwork . Parse ( input ) ;
156164 var utf8ParsedNetwork = IPNetwork . Parse ( utf8Bytes ) ;
157165
158- Assert . Equal ( input , stringParsedNetwork . ToString ( ) ) ;
159- Assert . Equal ( input , utf8ParsedNetwork . ToString ( ) ) ;
166+ var ( _, baseAddress , prefixLength , toString ) = ParseInput ( input ) ;
167+
168+ Assert . Equal ( baseAddress , stringParsedNetwork . BaseAddress ) ;
169+ Assert . Equal ( prefixLength , stringParsedNetwork . PrefixLength ) ;
170+ Assert . Equal ( toString , stringParsedNetwork . ToString ( ) ) ;
171+
172+ Assert . Equal ( baseAddress , utf8ParsedNetwork . BaseAddress ) ;
173+ Assert . Equal ( prefixLength , utf8ParsedNetwork . PrefixLength ) ;
174+ Assert . Equal ( toString , utf8ParsedNetwork . ToString ( ) ) ;
160175 }
161176
162177 [ Theory ]
@@ -165,11 +180,17 @@ public void TryParse_ValidNetworkNotation_Succeeds(string input)
165180 {
166181 byte [ ] utf8Bytes = Encoding . UTF8 . GetBytes ( input ) ;
167182
168- Assert . True ( IPNetwork . TryParse ( input , out IPNetwork network ) ) ;
169- Assert . Equal ( input , network . ToString ( ) ) ;
183+ var ( _, baseAddress , prefixLength , toString ) = ParseInput ( input ) ;
184+
185+ Assert . True ( IPNetwork . TryParse ( input , out IPNetwork stringParsedNetwork ) ) ;
186+ Assert . Equal ( baseAddress , stringParsedNetwork . BaseAddress ) ;
187+ Assert . Equal ( prefixLength , stringParsedNetwork . PrefixLength ) ;
188+ Assert . Equal ( toString , stringParsedNetwork . ToString ( ) ) ;
170189
171- Assert . True ( IPNetwork . TryParse ( utf8Bytes , out network ) ) ;
172- Assert . Equal ( input , network . ToString ( ) ) ;
190+ Assert . True ( IPNetwork . TryParse ( utf8Bytes , out IPNetwork utf8ParsedNetwork ) ) ;
191+ Assert . Equal ( baseAddress , utf8ParsedNetwork . BaseAddress ) ;
192+ Assert . Equal ( prefixLength , utf8ParsedNetwork . PrefixLength ) ;
193+ Assert . Equal ( toString , utf8ParsedNetwork . ToString ( ) ) ;
173194 }
174195
175196 [ Fact ]
0 commit comments