StraightLineTests.cs 7.8 KB

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