2
0

StraightLineTests.cs 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326
  1. using Xunit.Abstractions;
  2. namespace Terminal.Gui.DrawingTests;
  3. public class StraightLineTests (ITestOutputHelper output)
  4. {
  5. private readonly ITestOutputHelper _output = output;
  6. [InlineData (
  7. Orientation.Horizontal,
  8. 0,
  9. 0,
  10. 0,
  11. 0,
  12. 0,
  13. 1,
  14. 1
  15. )]
  16. [InlineData (
  17. Orientation.Horizontal,
  18. 0,
  19. 0,
  20. 1,
  21. 0,
  22. 0,
  23. 1,
  24. 1
  25. )]
  26. [InlineData (
  27. Orientation.Horizontal,
  28. 0,
  29. 0,
  30. 2,
  31. 0,
  32. 0,
  33. 2,
  34. 1
  35. )]
  36. [InlineData (
  37. Orientation.Horizontal,
  38. 0,
  39. 0,
  40. 3,
  41. 0,
  42. 0,
  43. 3,
  44. 1
  45. )]
  46. [InlineData (
  47. Orientation.Horizontal,
  48. 0,
  49. 0,
  50. -1,
  51. 0,
  52. 0,
  53. 1,
  54. 1
  55. )]
  56. [InlineData (
  57. Orientation.Horizontal,
  58. 0,
  59. 0,
  60. -2,
  61. -1,
  62. 0,
  63. 2,
  64. 1
  65. )]
  66. [InlineData (
  67. Orientation.Horizontal,
  68. 0,
  69. 0,
  70. -3,
  71. -2,
  72. 0,
  73. 3,
  74. 1
  75. )]
  76. [InlineData (
  77. Orientation.Horizontal,
  78. 1,
  79. 0,
  80. 0,
  81. 1,
  82. 0,
  83. 1,
  84. 1
  85. )]
  86. [InlineData (
  87. Orientation.Horizontal,
  88. 1,
  89. 0,
  90. 1,
  91. 1,
  92. 0,
  93. 1,
  94. 1
  95. )]
  96. [InlineData (
  97. Orientation.Horizontal,
  98. 1,
  99. 0,
  100. 2,
  101. 1,
  102. 0,
  103. 2,
  104. 1
  105. )]
  106. [InlineData (
  107. Orientation.Horizontal,
  108. 1,
  109. 0,
  110. 3,
  111. 1,
  112. 0,
  113. 3,
  114. 1
  115. )]
  116. [InlineData (
  117. Orientation.Horizontal,
  118. 1,
  119. 0,
  120. -1,
  121. 1,
  122. 0,
  123. 1,
  124. 1
  125. )]
  126. [InlineData (
  127. Orientation.Horizontal,
  128. 1,
  129. 0,
  130. -2,
  131. 0,
  132. 0,
  133. 2,
  134. 1
  135. )]
  136. [InlineData (
  137. Orientation.Horizontal,
  138. 1,
  139. 0,
  140. -3,
  141. -1,
  142. 0,
  143. 3,
  144. 1
  145. )]
  146. [InlineData (
  147. Orientation.Horizontal,
  148. -1,
  149. 0,
  150. 0,
  151. -1,
  152. 0,
  153. 1,
  154. 1
  155. )]
  156. [InlineData (
  157. Orientation.Horizontal,
  158. 0,
  159. -1,
  160. 1,
  161. 0,
  162. -1,
  163. 1,
  164. 1
  165. )]
  166. [InlineData (
  167. Orientation.Horizontal,
  168. -1,
  169. -1,
  170. 1,
  171. -1,
  172. -1,
  173. 1,
  174. 1
  175. )]
  176. [InlineData (
  177. Orientation.Horizontal,
  178. -1,
  179. -1,
  180. 2,
  181. -1,
  182. -1,
  183. 2,
  184. 1
  185. )]
  186. [InlineData (
  187. Orientation.Horizontal,
  188. -10,
  189. -10,
  190. 10,
  191. -10,
  192. -10,
  193. 10,
  194. 1
  195. )]
  196. [InlineData (
  197. Orientation.Horizontal,
  198. 0,
  199. -1,
  200. -1,
  201. 0,
  202. -1,
  203. 1,
  204. 1
  205. )]
  206. [InlineData (
  207. Orientation.Horizontal,
  208. -1,
  209. -1,
  210. -1,
  211. -1,
  212. -1,
  213. 1,
  214. 1
  215. )]
  216. [InlineData (
  217. Orientation.Horizontal,
  218. -1,
  219. -1,
  220. -2,
  221. -2,
  222. -1,
  223. 2,
  224. 1
  225. )]
  226. [InlineData (
  227. Orientation.Horizontal,
  228. -10,
  229. -10,
  230. -10,
  231. -19,
  232. -10,
  233. 10,
  234. 1
  235. )]
  236. [InlineData (
  237. Orientation.Vertical,
  238. 0,
  239. 0,
  240. 0,
  241. 0,
  242. 0,
  243. 1,
  244. 1
  245. )]
  246. [InlineData (
  247. Orientation.Vertical,
  248. 0,
  249. 0,
  250. 1,
  251. 0,
  252. 0,
  253. 1,
  254. 1
  255. )]
  256. [InlineData (
  257. Orientation.Vertical,
  258. 0,
  259. 0,
  260. 2,
  261. 0,
  262. 0,
  263. 1,
  264. 2
  265. )]
  266. [InlineData (
  267. Orientation.Vertical,
  268. 0,
  269. 0,
  270. 3,
  271. 0,
  272. 0,
  273. 1,
  274. 3
  275. )]
  276. [InlineData (
  277. Orientation.Vertical,
  278. 0,
  279. 0,
  280. -1,
  281. 0,
  282. 0,
  283. 1,
  284. 1
  285. )]
  286. [InlineData (
  287. Orientation.Vertical,
  288. 0,
  289. 0,
  290. -2,
  291. 0,
  292. -1,
  293. 1,
  294. 2
  295. )]
  296. [InlineData (
  297. Orientation.Vertical,
  298. 0,
  299. 0,
  300. -3,
  301. 0,
  302. -2,
  303. 1,
  304. 3
  305. )]
  306. [Theory]
  307. [SetupFakeDriver]
  308. public void Viewport (
  309. Orientation orientation,
  310. int x,
  311. int y,
  312. int length,
  313. int expectedX,
  314. int expectedY,
  315. int expectedWidth,
  316. int expectedHeight
  317. )
  318. {
  319. var sl = new StraightLine (new (x, y), length, orientation, LineStyle.Single);
  320. Assert.Equal (new (expectedX, expectedY, expectedWidth, expectedHeight), sl.Viewport);
  321. }
  322. }