UnifiedDiffOutputBuilderDataProvider.php 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397
  1. <?php declare(strict_types=1);
  2. /*
  3. * This file is part of sebastian/diff.
  4. *
  5. * (c) Sebastian Bergmann <sebastian@phpunit.de>
  6. *
  7. * For the full copyright and license information, please view the LICENSE
  8. * file that was distributed with this source code.
  9. */
  10. namespace SebastianBergmann\Diff\Output;
  11. final class UnifiedDiffOutputBuilderDataProvider
  12. {
  13. public static function provideDiffWithLineNumbers(): array
  14. {
  15. return [
  16. 'diff line 1 non_patch_compat' => [
  17. '--- Original
  18. +++ New
  19. @@ -1 +1 @@
  20. -AA
  21. +BA
  22. ',
  23. 'AA',
  24. 'BA',
  25. ],
  26. 'diff line +1 non_patch_compat' => [
  27. '--- Original
  28. +++ New
  29. @@ -1 +1,2 @@
  30. -AZ
  31. +
  32. +B
  33. ',
  34. 'AZ',
  35. "\nB",
  36. ],
  37. 'diff line -1 non_patch_compat' => [
  38. '--- Original
  39. +++ New
  40. @@ -1,2 +1 @@
  41. -
  42. -AF
  43. +B
  44. ',
  45. "\nAF",
  46. 'B',
  47. ],
  48. 'II non_patch_compat' => [
  49. '--- Original
  50. +++ New
  51. @@ -1,4 +1,2 @@
  52. -
  53. -
  54. A
  55. 1
  56. ',
  57. "\n\nA\n1",
  58. "A\n1",
  59. ],
  60. 'diff last line II - no trailing linebreak non_patch_compat' => [
  61. '--- Original
  62. +++ New
  63. @@ -5,4 +5,4 @@
  64. ' . '
  65. ' . '
  66. ' . '
  67. -E
  68. +B
  69. ',
  70. "A\n\n\n\n\n\n\nE",
  71. "A\n\n\n\n\n\n\nB",
  72. ],
  73. [
  74. "--- Original\n+++ New\n@@ -1,2 +1 @@\n \n-\n",
  75. "\n\n",
  76. "\n",
  77. ],
  78. 'diff line endings non_patch_compat' => [
  79. "--- Original\n+++ New\n@@ -1 +1 @@\n #Warning: Strings contain different line endings!\n-<?php\r\n+<?php\n",
  80. "<?php\r\n",
  81. "<?php\n",
  82. ],
  83. 'same non_patch_compat' => [
  84. '--- Original
  85. +++ New
  86. ',
  87. "AT\n",
  88. "AT\n",
  89. ],
  90. [
  91. '--- Original
  92. +++ New
  93. @@ -1,4 +1,4 @@
  94. -b
  95. +a
  96. ' . '
  97. ' . '
  98. ' . '
  99. ',
  100. "b\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",
  101. "a\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",
  102. ],
  103. 'diff line @1' => [
  104. '--- Original
  105. +++ New
  106. @@ -1,2 +1,2 @@
  107. ' . '
  108. -AG
  109. +B
  110. ',
  111. "\nAG\n",
  112. "\nB\n",
  113. ],
  114. 'same multiple lines' => [
  115. '--- Original
  116. +++ New
  117. @@ -1,4 +1,4 @@
  118. ' . '
  119. ' . '
  120. -V
  121. +B
  122. C213
  123. ',
  124. "\n\nV\nC213",
  125. "\n\nB\nC213",
  126. ],
  127. 'diff last line I' => [
  128. '--- Original
  129. +++ New
  130. @@ -5,4 +5,4 @@
  131. ' . '
  132. ' . '
  133. ' . '
  134. -E
  135. +B
  136. ',
  137. "A\n\n\n\n\n\n\nE\n",
  138. "A\n\n\n\n\n\n\nB\n",
  139. ],
  140. 'diff line middle' => [
  141. '--- Original
  142. +++ New
  143. @@ -5,7 +5,7 @@
  144. ' . '
  145. ' . '
  146. ' . '
  147. -X
  148. +Z
  149. ' . '
  150. ' . '
  151. ' . '
  152. ',
  153. "A\n\n\n\n\n\n\nX\n\n\n\n\n\n\nAY",
  154. "A\n\n\n\n\n\n\nZ\n\n\n\n\n\n\nAY",
  155. ],
  156. 'diff last line III' => [
  157. '--- Original
  158. +++ New
  159. @@ -12,4 +12,4 @@
  160. ' . '
  161. ' . '
  162. ' . '
  163. -A
  164. +B
  165. ',
  166. "A\n\n\n\n\n\n\nA\n\n\n\n\n\n\nA\n",
  167. "A\n\n\n\n\n\n\nA\n\n\n\n\n\n\nB\n",
  168. ],
  169. [
  170. '--- Original
  171. +++ New
  172. @@ -1,8 +1,8 @@
  173. A
  174. -B
  175. +B1
  176. D
  177. E
  178. EE
  179. F
  180. -G
  181. +G1
  182. H
  183. ',
  184. "A\nB\nD\nE\nEE\nF\nG\nH",
  185. "A\nB1\nD\nE\nEE\nF\nG1\nH",
  186. ],
  187. [
  188. '--- Original
  189. +++ New
  190. @@ -1,4 +1,5 @@
  191. Z
  192. +
  193. a
  194. b
  195. c
  196. @@ -7,5 +8,5 @@
  197. f
  198. g
  199. h
  200. -i
  201. +x
  202. j
  203. ',
  204. 'Z
  205. a
  206. b
  207. c
  208. d
  209. e
  210. f
  211. g
  212. h
  213. i
  214. j
  215. ',
  216. 'Z
  217. a
  218. b
  219. c
  220. d
  221. e
  222. f
  223. g
  224. h
  225. x
  226. j
  227. ',
  228. ],
  229. [
  230. '--- Original
  231. +++ New
  232. @@ -1,7 +1,5 @@
  233. -
  234. -a
  235. +b
  236. A
  237. -X
  238. -
  239. +Y
  240. ' . '
  241. A
  242. ',
  243. "\na\nA\nX\n\n\nA\n",
  244. "b\nA\nY\n\nA\n",
  245. ],
  246. [
  247. <<<EOF
  248. --- Original
  249. +++ New
  250. @@ -1,7 +1,5 @@
  251. -
  252. -
  253. a
  254. -b
  255. +p
  256. c
  257. d
  258. e
  259. @@ -9,5 +7,5 @@
  260. g
  261. h
  262. i
  263. -j
  264. +w
  265. k
  266. EOF
  267. ,
  268. "\n\na\nb\nc\nd\ne\nf\ng\nh\ni\nj\nk\n",
  269. "a\np\nc\nd\ne\nf\ng\nh\ni\nw\nk\n",
  270. ],
  271. [
  272. '--- Original
  273. +++ New
  274. @@ -8,7 +8,7 @@
  275. ' . '
  276. ' . '
  277. ' . '
  278. -A
  279. +C
  280. ' . '
  281. ' . '
  282. ' . '
  283. ',
  284. "E\n\n\n\n\nB\n\n\n\n\nA\n\n\n\n\n\n\n\n\nD1",
  285. "E\n\n\n\n\nB\n\n\n\n\nC\n\n\n\n\n\n\n\n\nD1",
  286. ],
  287. [
  288. '--- Original
  289. +++ New
  290. @@ -5,7 +5,7 @@
  291. ' . '
  292. ' . '
  293. ' . '
  294. -Z
  295. +U
  296. ' . '
  297. ' . '
  298. ' . '
  299. @@ -12,7 +12,7 @@
  300. ' . '
  301. ' . '
  302. ' . '
  303. -X
  304. +V
  305. ' . '
  306. ' . '
  307. ' . '
  308. @@ -19,7 +19,7 @@
  309. ' . '
  310. ' . '
  311. ' . '
  312. -Y
  313. +W
  314. ' . '
  315. ' . '
  316. ' . '
  317. @@ -26,7 +26,7 @@
  318. ' . '
  319. ' . '
  320. ' . '
  321. -W
  322. +X
  323. ' . '
  324. ' . '
  325. ' . '
  326. @@ -33,7 +33,7 @@
  327. ' . '
  328. ' . '
  329. ' . '
  330. -V
  331. +Y
  332. ' . '
  333. ' . '
  334. ' . '
  335. @@ -40,4 +40,4 @@
  336. ' . '
  337. ' . '
  338. ' . '
  339. -U
  340. +Z
  341. ',
  342. "\n\n\n\n\n\n\nZ\n\n\n\n\n\n\nX\n\n\n\n\n\n\nY\n\n\n\n\n\n\nW\n\n\n\n\n\n\nV\n\n\n\n\n\n\nU\n",
  343. "\n\n\n\n\n\n\nU\n\n\n\n\n\n\nV\n\n\n\n\n\n\nW\n\n\n\n\n\n\nX\n\n\n\n\n\n\nY\n\n\n\n\n\n\nZ\n",
  344. ],
  345. [
  346. <<<EOF
  347. --- Original
  348. +++ New
  349. @@ -1,5 +1,5 @@
  350. a
  351. -b
  352. +p
  353. c
  354. d
  355. e
  356. @@ -7,5 +7,5 @@
  357. g
  358. h
  359. i
  360. -j
  361. +w
  362. k
  363. EOF
  364. ,
  365. "a\nb\nc\nd\ne\nf\ng\nh\ni\nj\nk\n",
  366. "a\np\nc\nd\ne\nf\ng\nh\ni\nw\nk\n",
  367. ],
  368. [
  369. <<<EOF
  370. --- Original
  371. +++ New
  372. @@ -1,4 +1,4 @@
  373. -A
  374. +B
  375. 1
  376. 2
  377. 3
  378. EOF
  379. ,
  380. "A\n1\n2\n3\n4\n5\n6\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1",
  381. "B\n1\n2\n3\n4\n5\n6\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1",
  382. ],
  383. [
  384. "--- Original\n+++ New\n@@ -4,7 +4,7 @@\n D\n E\n F\n-X\n+Y\n G\n H\n I\n",
  385. "A\nB\nC\nD\nE\nF\nX\nG\nH\nI\nJ\nK\nL\nM\n",
  386. "A\nB\nC\nD\nE\nF\nY\nG\nH\nI\nJ\nK\nL\nM\n",
  387. ],
  388. ];
  389. }
  390. }