< Summary

Information
Class: NumberPatternTests.ValidPatternsTests
Assembly: numberpatterntests.dll
File(s): C:\skola_karlovka\RP\code\csv-validator\CSV_Validator\Tests\NumberPatternTests\ValidPatternsTests.cs
Line coverage
100%
Covered lines: 51
Uncovered lines: 0
Coverable lines: 51
Total lines: 217
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

File(s)

C:\skola_karlovka\RP\code\csv-validator\CSV_Validator\Tests\NumberPatternTests\ValidPatternsTests.cs

#LineLine coverage
 1using ExtendedNumerics;
 2using ValidateLib.Metadata.Descriptors;
 3using ValidateLib.TabularData.Datatypes;
 4using ValidateLib.TabularData.Datatypes.NumericDatatypes;
 5
 6namespace NumberPatternTests
 7{
 8    public class ValidPatternsTests
 9    {
 10
 11        [Theory]
 12        [InlineData("1", "decimal", "##0")]
 13        [InlineData("12", "decimal", "##0")]
 14        [InlineData("123", "decimal", "##0")]
 15        [InlineData("1234", "decimal", "##0")]
 16
 17        [InlineData("12", "decimal", "#,#00")]
 18        [InlineData("123", "decimal", "#,#00")]
 19        [InlineData("1,234", "decimal", "#,#00")]
 20        [InlineData("1,234,567", "decimal", "#,#00")]
 21
 22        [InlineData("12", "decimal", "#,##,#00")]
 23        [InlineData("123", "decimal", "#,##,#00")]
 24        [InlineData("1,234", "decimal", "#,##,#00")]
 25        [InlineData("12,34,567", "decimal", "#,##,#00")]
 26
 27        [InlineData("1", "decimal", "#0.#")]
 28        [InlineData("1.2", "decimal", "#0.#")]
 29        [InlineData("1234.5", "decimal", "#0.#")]
 30
 31        [InlineData("1.2", "decimal", "#0.0")]
 32        [InlineData("12.3", "decimal", "#0.0")]
 33        [InlineData("1234.5", "decimal", "#0.0")]
 34
 35        [InlineData("1.2", "decimal", "#0.0#")]
 36        [InlineData("1.23", "decimal", "#0.0#")]
 37        [InlineData("12.3", "decimal", "#0.0#")]
 38        [InlineData("12.34", "decimal", "#0.0#")]
 39
 40        [InlineData("12.3", "decimal", "#0.0#,#")]
 41        [InlineData("12.34", "decimal", "#0.0#,#")]
 42        [InlineData("12.24,5", "decimal", "#0.0#,#")]
 43
 44        [InlineData("0.0E0", "double", "#0.###E#0")]
 45        [InlineData("0.0", "double", "#0.###")]
 46
 47        public void ValidPatternsDecimalSimpleTest(string stringValue, string baseType, string numberPattern, string? de
 148        {
 149            var format = new FormatDescriptor()
 150            {
 151                decimalChar = decimalChar,
 152                groupChar = groupChar,
 153                pattern = numberPattern
 154            };
 155            var dt = DatatypeFactory.GetDatatype(stringValue, baseType, format);
 156        }
 57
 58        [Theory]
 59        [InlineData("+1", "decimal", "+0")]
 60
 61        [InlineData("-1", "decimal", "-0")]
 62
 63        [InlineData("%123", "decimal", "%000")]
 64        [InlineData("%+123", "decimal", "%000")]
 65        [InlineData("%-123", "decimal", "%000")]
 66
 67        [InlineData("‰123", "decimal", "‰000")]
 68        [InlineData("‰+123", "decimal", "‰000")]
 69        [InlineData("‰-123", "decimal", "‰000")]
 70
 71        [InlineData("123%", "decimal", "000%")]
 72        [InlineData("+123%", "decimal", "000%")]
 73        [InlineData("-123%", "decimal", "000%")]
 74
 75        [InlineData("123‰", "decimal", "000‰")]
 76        [InlineData("+123‰", "decimal", "000‰")]
 77        [InlineData("-123‰", "decimal", "000‰")]
 78
 79        [InlineData("123.4%", "decimal", "000.0%")]
 80        [InlineData("+123.4%", "decimal", "000.0%")]
 81        [InlineData("-123.4%", "decimal", "000.0%")]
 82
 83
 84
 85        public void ValidPatternsDecimalWithPercentAndPermileAndMinusOrPlusTest(string stringValue, string baseType, str
 186        {
 187            var format = new FormatDescriptor()
 188            {
 189                decimalChar = decimalChar,
 190                groupChar = groupChar,
 191                pattern = numberPattern
 192            };
 193            var dt = DatatypeFactory.GetDatatype(stringValue, baseType, format);
 194        }
 95
 96        [Theory]
 97        [InlineData("1", "decimal", "###0.#####", "1")]
 98        [InlineData("12.3", "decimal", "###0.#####", "12.3")]
 99        [InlineData("123.45", "decimal", "###0.#####", "123.45")]
 100        [InlineData("1.23456", "decimal", "###0.#####", "1.23456")]
 101
 102        [InlineData("1.2345", "decimal", "###0.0000#", "1.2345")]
 103        [InlineData("12.34567", "decimal", "###0.0000#", "12.34567")]
 104
 105        [InlineData("12345.6789", "decimal", "00000.0000", "12345.6789")]
 106
 107        [InlineData("1", "decimal", "#,##,##0", "1")]
 108        [InlineData("123", "decimal", "#,##,##0", "123")]
 109        [InlineData("12,345", "decimal", "#,##,##0", "12345")]
 110        [InlineData("1,23,456", "decimal", "#,##,##0", "123456")]
 111
 112        [InlineData("12", "decimal", "#,##,#00", "12")]
 113        [InlineData("123", "decimal", "#,##,#00", "123")]
 114        [InlineData("12,345", "decimal", "#,##,#00", "12345")]
 115        [InlineData("1,23,456", "decimal", "#,##,#00", "123456")]
 116
 117        [InlineData("123", "decimal", "#,##,000", "123")]
 118        [InlineData("12,345", "decimal", "#,##,000", "12345")]
 119        [InlineData("1,23,456", "decimal", "#,##,000", "123456")]
 120
 121        [InlineData("1,234", "decimal", "#,#0,000", "1234")]
 122        [InlineData("12,345", "decimal", "#,#0,000", "12345")]
 123        [InlineData("1,23,456", "decimal", "#,#0,000", "123456")]
 124
 125        [InlineData("12,345", "decimal", "#,00,000", "12345")]
 126
 127        [InlineData("1,23,456", "decimal", "0,00,000", "123456")]
 128
 129        public void ValidPatternsDecimalGroupingTest(string stringValue, string baseType, string numberPattern, string e
 1130        {
 1131            var format = new FormatDescriptor()
 1132            {
 1133                decimalChar = decimalChar,
 1134                groupChar = groupChar,
 1135                pattern = numberPattern
 1136            };
 1137            var dt = DatatypeFactory.GetDatatype(stringValue, baseType, format);
 1138            NumericBaseDT numeric = (NumericBaseDT)dt;
 1139            Assert.Equal(BigDecimal.Parse(expectedValue), numeric.Value);
 1140        }
 141
 142        [Theory]
 143        [InlineData("1.1", "decimal", "0.0##,###", "1.1")]
 144        [InlineData("1.12", "decimal", "0.0##,###", "1.12")]
 145        [InlineData("1.123", "decimal", "0.0##,###", "1.123")]
 146        [InlineData("1.123,4", "decimal", "0.0##,###", "1.1234")]
 147        [InlineData("1.123,45", "decimal", "0.0##,###", "1.12345")]
 148        [InlineData("1.123,456", "decimal", "0.0##,###", "1.123456")]
 149
 150        [InlineData("1.19", "decimal", "0.00#,###", "1.19")]
 151        [InlineData("1.12", "decimal", "0.00#,###", "1.12")]
 152        [InlineData("1.123", "decimal", "0.00#,###", "1.123")]
 153        [InlineData("1.123,4", "decimal", "0.00#,###", "1.1234")]
 154        [InlineData("1.123,45", "decimal", "0.00#,###", "1.12345")]
 155        [InlineData("1.123,456", "decimal", "0.00#,###", "1.123456")]
 156
 157        [InlineData("1.199", "decimal", "0.000,###", "1.199")]
 158        [InlineData("1.129", "decimal", "0.000,###", "1.129")]
 159        [InlineData("1.123", "decimal", "0.000,###", "1.123")]
 160        [InlineData("1.123,4", "decimal", "0.000,###", "1.1234")]
 161        [InlineData("1.123,45", "decimal", "0.000,###", "1.12345")]
 162        [InlineData("1.123,456", "decimal", "0.000,###", "1.123456")]
 163
 164        [InlineData("1.199,9", "decimal", "0.000,0##", "1.1999")]
 165        [InlineData("1.129,9", "decimal", "0.000,0##", "1.1299")]
 166        [InlineData("1.123,9", "decimal", "0.000,0##", "1.1239")]
 167        [InlineData("1.123,4", "decimal", "0.000,0##", "1.1234")]
 168        [InlineData("1.123,45", "decimal", "0.000,0##", "1.12345")]
 169        [InlineData("1.123,456", "decimal", "0.000,0##", "1.123456")]
 170
 171        [InlineData("1.199,99", "decimal", "0.000,00#", "1.19999")]
 172        [InlineData("1.129,99", "decimal", "0.000,00#", "1.12999")]
 173        [InlineData("1.123,99", "decimal", "0.000,00#", "1.12399")]
 174        [InlineData("1.123,49", "decimal", "0.000,00#", "1.12349")]
 175        [InlineData("1.123,45", "decimal", "0.000,00#", "1.12345")]
 176        [InlineData("1.123,456", "decimal", "0.000,00#", "1.123456")]
 177
 178        [InlineData("1.199,999", "decimal", "0.000,000", "1.199999")]
 179
 180
 181        public void ValidPatternsDecimalFractionalGroupingTest(string stringValue, string baseType, string numberPattern
 1182        {
 1183            var format = new FormatDescriptor()
 1184            {
 1185                decimalChar = decimalChar,
 1186                groupChar = groupChar,
 1187                pattern = numberPattern
 1188            };
 1189            var dt = DatatypeFactory.GetDatatype(stringValue, baseType, format);
 1190            NumericBaseDT numeric = (NumericBaseDT)dt;
 1191            Assert.Equal(BigDecimal.Parse(expectedValue), numeric.Value);
 1192        }
 193
 194
 195        [Theory]
 196        [InlineData("1.123,45,6", "decimal", "0.000,##,#", "1.123456")]
 197        [InlineData("1.123", "decimal", "0.000,##,#", "1.123")]
 198        [InlineData("1.120", "decimal", "0.000,##,#", "1.120")]
 199        [InlineData("1.100", "decimal", "0.000,##,#", "1.100")]
 200        [InlineData("1.123,45,6", "decimal", "0.0##,##,#", "1.123456")]
 201        [InlineData("1.0", "decimal", "0.0##,##,#", "1.0")]
 202        [InlineData("1.123,45,6", "decimal", "0.000,00,#", "1.123456")]
 203        public void ValidPatternsDecimalFractionalGroupingWithSecongGroupingTest(string stringValue, string baseType, st
 1204        {
 1205            var format = new FormatDescriptor()
 1206            {
 1207                decimalChar = decimalChar,
 1208                groupChar = groupChar,
 1209                pattern = numberPattern
 1210            };
 1211            var dt = DatatypeFactory.GetDatatype(stringValue, baseType, format);
 1212            NumericBaseDT numeric = (NumericBaseDT)dt;
 1213            Assert.Equal(BigDecimal.Parse(expectedValue), numeric.Value);
 1214        }
 215
 216    }
 217}