| Conditions | 4 |
| Paths | 5 |
| Total Lines | 190 |
| Code Lines | 165 |
| Lines | 0 |
| Ratio | 0 % |
| Changes | 4 | ||
| Bugs | 0 | Features | 0 |
Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.
For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.
Commonly applied refactorings include:
If many parameters/temporary variables are present:
| 1 | <?php |
||
| 68 | public function validInputProvider() { |
||
| 69 | $gregorian = 'http://www.wikidata.org/entity/Q1985727'; |
||
| 70 | $julian = 'http://www.wikidata.org/entity/Q1985786'; |
||
| 71 | $argList = array(); |
||
| 72 | |||
| 73 | $valid = array( |
||
| 74 | // Whitespace |
||
| 75 | "10/10/2010\n" => |
||
| 76 | array( '+0000000000002010-10-10T00:00:00Z' ), |
||
| 77 | ' 10.10.2010 ' => |
||
| 78 | array( '+0000000000002010-10-10T00:00:00Z' ), |
||
| 79 | |||
| 80 | // Normal/easy dates |
||
| 81 | ' 10. 10. 2010 ' => |
||
| 82 | array( '+0000000000002010-10-10T00:00:00Z' ), |
||
| 83 | '10,10,2010' => |
||
| 84 | array( '+0000000000002010-10-10T00:00:00Z' ), |
||
| 85 | '10 10 2010' => |
||
| 86 | array( '+0000000000002010-10-10T00:00:00Z' ), |
||
| 87 | '10/10/0010' => |
||
| 88 | array( '+0000000000000010-10-10T00:00:00Z', TimeValue::PRECISION_DAY, $julian ), |
||
| 89 | '1 July 2013' => |
||
| 90 | array( '+0000000000002013-07-01T00:00:00Z' ), |
||
| 91 | '1. July 2013' => |
||
| 92 | array( '+0000000000002013-07-01T00:00:00Z' ), |
||
| 93 | '1 July, 2013' => |
||
| 94 | array( '+0000000000002013-07-01T00:00:00Z' ), |
||
| 95 | '1 Jul. 2013' => |
||
| 96 | array( '+0000000000002013-07-01T00:00:00Z' ), |
||
| 97 | '1 Jul 2013' => |
||
| 98 | array( '+0000000000002013-07-01T00:00:00Z' ), |
||
| 99 | 'January 9 1920' => |
||
| 100 | array( '+0000000000001920-01-09T00:00:00Z' ), |
||
| 101 | 'Feb 11 1930' => |
||
| 102 | array( '+0000000000001930-02-11T00:00:00Z' ), |
||
| 103 | '1st July 2013' => |
||
| 104 | array( '+0000000000002013-07-01T00:00:00Z' ), |
||
| 105 | '2nd July 2013' => |
||
| 106 | array( '+0000000000002013-07-02T00:00:00Z' ), |
||
| 107 | '3rd July 2013' => |
||
| 108 | array( '+0000000000002013-07-03T00:00:00Z' ), |
||
| 109 | '1th July 2013' => |
||
| 110 | array( '+0000000000002013-07-01T00:00:00Z' ), |
||
| 111 | '2th July 2013' => |
||
| 112 | array( '+0000000000002013-07-02T00:00:00Z' ), |
||
| 113 | '3th July 2013' => |
||
| 114 | array( '+0000000000002013-07-03T00:00:00Z' ), |
||
| 115 | '4th July 2013' => |
||
| 116 | array( '+0000000000002013-07-04T00:00:00Z' ), |
||
| 117 | |||
| 118 | // Year first dates |
||
| 119 | '2009-01-09' => |
||
| 120 | array( '+0000000000002009-01-09T00:00:00Z' ), |
||
| 121 | '55-01-09' => |
||
| 122 | array( '+0000000000000055-01-09T00:00:00Z', TimeValue::PRECISION_DAY, $julian ), |
||
| 123 | '555-01-09' => |
||
| 124 | array( '+0000000000000555-01-09T00:00:00Z', TimeValue::PRECISION_DAY, $julian ), |
||
| 125 | '33300-1-1' => |
||
| 126 | array( '+0000000000033300-01-01T00:00:00Z' ), |
||
| 127 | '3330002-1-1' => |
||
| 128 | array( '+0000000003330002-01-01T00:00:00Z' ), |
||
| 129 | |||
| 130 | // Less than 4 digit years |
||
| 131 | '10/10/10' => |
||
| 132 | array( '+0000000000000010-10-10T00:00:00Z', TimeValue::PRECISION_DAY, $julian ), |
||
| 133 | '9 Jan 09' => |
||
| 134 | array( '+0000000000000009-01-09T00:00:00Z', TimeValue::PRECISION_DAY, $julian ), |
||
| 135 | '1/1/1' => |
||
| 136 | array( '+0000000000000001-01-01T00:00:00Z', TimeValue::PRECISION_DAY, $julian ), |
||
| 137 | '1-1-1' => |
||
| 138 | array( '+0000000000000001-01-01T00:00:00Z', TimeValue::PRECISION_DAY, $julian ), |
||
| 139 | '31-1-55' => |
||
| 140 | array( '+0000000000000055-01-31T00:00:00Z', TimeValue::PRECISION_DAY, $julian ), |
||
| 141 | '10-10-100' => |
||
| 142 | array( '+0000000000000100-10-10T00:00:00Z', TimeValue::PRECISION_DAY, $julian ), |
||
| 143 | '4th July 11' => |
||
| 144 | array( '+0000000000000011-07-04T00:00:00Z', TimeValue::PRECISION_DAY, $julian ), |
||
| 145 | '4th July 111' => |
||
| 146 | array( '+0000000000000111-07-04T00:00:00Z', TimeValue::PRECISION_DAY, $julian ), |
||
| 147 | '4th July 1' => |
||
| 148 | array( '+0000000000000001-07-04T00:00:00Z', TimeValue::PRECISION_DAY, $julian ), |
||
| 149 | '12.Jun.10x' => |
||
| 150 | array( '+0000000000000010-06-12T00:00:00Z', TimeValue::PRECISION_DAY, $julian ), |
||
| 151 | |||
| 152 | // More than 4 digit years |
||
| 153 | '4th July 10000' => |
||
| 154 | array( '+0000000000010000-07-04T00:00:00Z' ), |
||
| 155 | '10/10/22000' => |
||
| 156 | array( '+0000000000022000-10-10T00:00:00Z' ), |
||
| 157 | '1-1-33300' => |
||
| 158 | array( '+0000000000033300-01-01T00:00:00Z' ), |
||
| 159 | '4th July 7214614279199781' => |
||
| 160 | array( '+7214614279199781-07-04T00:00:00Z' ), |
||
| 161 | '-10100-02-29' => |
||
| 162 | array( '-0000000000010100-03-01T00:00:00Z', TimeValue::PRECISION_DAY, $julian ), |
||
| 163 | |||
| 164 | // Years with leading zeros |
||
| 165 | '009-08-07' => |
||
| 166 | array( '+0000000000000009-08-07T00:00:00Z', TimeValue::PRECISION_DAY, $julian ), |
||
| 167 | '000001-07-04' => |
||
| 168 | array( '+0000000000000001-07-04T00:00:00Z', TimeValue::PRECISION_DAY, $julian ), |
||
| 169 | '0000001-07-04' => |
||
| 170 | array( '+0000000000000001-07-04T00:00:00Z', TimeValue::PRECISION_DAY, $julian ), |
||
| 171 | '00000001-07-04' => |
||
| 172 | array( '+0000000000000001-07-04T00:00:00Z', TimeValue::PRECISION_DAY, $julian ), |
||
| 173 | '000000001-07-04' => |
||
| 174 | array( '+0000000000000001-07-04T00:00:00Z', TimeValue::PRECISION_DAY, $julian ), |
||
| 175 | '00000000000-07-04' => |
||
| 176 | array( '+0000000000000000-07-04T00:00:00Z', TimeValue::PRECISION_DAY, $julian ), |
||
| 177 | '4th July 00000002015' => |
||
| 178 | array( '+0000000000002015-07-04T00:00:00Z' ), |
||
| 179 | '00000002015-07-04' => |
||
| 180 | array( '+0000000000002015-07-04T00:00:00Z' ), |
||
| 181 | '4th July 00000092015' => |
||
| 182 | array( '+0000000000092015-07-04T00:00:00Z' ), |
||
| 183 | '00000092015-07-04' => |
||
| 184 | array( '+0000000000092015-07-04T00:00:00Z' ), |
||
| 185 | |||
| 186 | // Hour, minute and second precision |
||
| 187 | '4 July 2015 23:59' => |
||
| 188 | array( '+0000000000002015-07-04T23:59:00Z', TimeValue::PRECISION_MINUTE ), |
||
| 189 | '4 July 100 23:59' => |
||
| 190 | array( '+0000000000000100-07-04T23:59:00Z', TimeValue::PRECISION_MINUTE, $julian ), |
||
| 191 | '4 July 015 23:59' => |
||
| 192 | array( '+0000000000000015-07-04T23:59:00Z', TimeValue::PRECISION_MINUTE, $julian ), |
||
| 193 | '4 July 15 23:59' => |
||
| 194 | array( '+0000000000000015-07-04T23:59:00Z', TimeValue::PRECISION_MINUTE, $julian ), |
||
| 195 | '4.7.015 23:59' => |
||
| 196 | array( '+0000000000000015-07-04T23:59:00Z', TimeValue::PRECISION_MINUTE, $julian ), |
||
| 197 | '4.7.15 23:59' => |
||
| 198 | array( '+0000000000000015-07-04T23:59:00Z', TimeValue::PRECISION_MINUTE, $julian ), |
||
| 199 | '4/7/015 23:59' => |
||
| 200 | array( '+0000000000000015-04-07T23:59:00Z', TimeValue::PRECISION_MINUTE, $julian ), |
||
| 201 | '4/7/15 23:59' => |
||
| 202 | array( '+0000000000000015-04-07T23:59:00Z', TimeValue::PRECISION_MINUTE, $julian ), |
||
| 203 | '4th July 2015 12:00' => |
||
| 204 | array( '+0000000000002015-07-04T12:00:00Z', TimeValue::PRECISION_HOUR ), |
||
| 205 | '2015-07-04 12:00' => |
||
| 206 | array( '+0000000000002015-07-04T12:00:00Z', TimeValue::PRECISION_HOUR ), |
||
| 207 | '2015-07-04 12:30' => |
||
| 208 | array( '+0000000000002015-07-04T12:30:00Z', TimeValue::PRECISION_MINUTE ), |
||
| 209 | '2015-07-04 12:30:29' => |
||
| 210 | array( '+0000000000002015-07-04T12:30:29Z', TimeValue::PRECISION_SECOND ), |
||
| 211 | '15.07.04 23:59' => |
||
| 212 | array( '+0000000000000004-07-15T23:59:00Z', TimeValue::PRECISION_MINUTE, $julian ), |
||
| 213 | '15.07.04 00:01' => |
||
| 214 | array( '+0000000000000004-07-15T00:01:00Z', TimeValue::PRECISION_MINUTE, $julian ), |
||
| 215 | '15-07-01 12:37:00' => |
||
| 216 | array( '+0000000000000001-07-15T12:37:00Z', TimeValue::PRECISION_MINUTE, $julian ), |
||
| 217 | '4th July 15 12:00' => |
||
| 218 | array( '+0000000000000015-07-04T12:00:00Z', TimeValue::PRECISION_HOUR, $julian ), |
||
| 219 | 'July 4th 15 12:00' => |
||
| 220 | array( '+0000000000000015-07-04T12:00:00Z', TimeValue::PRECISION_HOUR, $julian ), |
||
| 221 | |||
| 222 | // Testing leap year stuff |
||
| 223 | '10000-02-29' => |
||
| 224 | array( '+0000000000010000-02-29T00:00:00Z' ), |
||
| 225 | '10100-02-29' => |
||
| 226 | array( '+0000000000010100-03-01T00:00:00Z' ), |
||
| 227 | '10400-02-29' => |
||
| 228 | array( '+0000000000010400-02-29T00:00:00Z' ), |
||
| 229 | |||
| 230 | 'Jan1 1991' => |
||
| 231 | array( '+1991-01-01T00:00:00Z' ), |
||
| 232 | '1991-1-1' => |
||
| 233 | array( '+1991-01-01T00:00:00Z' ), |
||
| 234 | '1991/1/1' => |
||
| 235 | array( '+1991-01-01T00:00:00Z' ), |
||
| 236 | '1991 1 1' => |
||
| 237 | array( '+1991-01-01T00:00:00Z' ), |
||
| 238 | '1991.1.1' => |
||
| 239 | array( '+1991-01-01T00:00:00Z' ), |
||
| 240 | '1991.01.01' => |
||
| 241 | array( '+1991-01-01T00:00:00Z' ), |
||
| 242 | ); |
||
| 243 | |||
| 244 | foreach ( $valid as $value => $args ) { |
||
| 245 | $timestamp = $args[0]; |
||
| 246 | $precision = isset( $args[1] ) ? $args[1] : TimeValue::PRECISION_DAY; |
||
| 247 | $calendarModel = isset( $args[2] ) ? $args[2] : $gregorian; |
||
| 248 | |||
| 249 | $argList[] = array( |
||
| 250 | // Because PHP magically turns numeric keys into ints/floats |
||
| 251 | (string)$value, |
||
| 252 | new TimeValue( $timestamp, 0, 0, 0, $precision, $calendarModel ) |
||
| 253 | ); |
||
| 254 | } |
||
| 255 | |||
| 256 | return $argList; |
||
| 257 | } |
||
| 258 | |||
| 306 |