Advertisement
apalchikovskiy

Untitled

Feb 20th, 2020
434
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.36 KB | None | 0 0
  1. package com.emfxe.test
  2.  
  3. import com.bmfn.extensions.scaleUp
  4. import com.emfxe.model.position.ProfitAndInvested
  5. import com.emfxe.utils.*
  6. import org.junit.Test
  7. import org.junit.Assert
  8. import java.math.BigDecimal
  9.  
  10.  
  11. class FormulasTests {
  12.  
  13. //check maxQTY with cross = 1
  14. @Test
  15. fun checkMaxQTYWithIntegerPriceAndIntegerBalanceCrossEqualsOne(){
  16. Assert.assertEquals(26.toBigDecimal(), (maxQTY(1000.toBigDecimal(), BigDecimal.ONE, 38.toBigDecimal())))
  17. }
  18.  
  19. @Test
  20. fun checkMaxQTYWithFloatPriceAndIntegerBalanceCrossEqualsOne(){
  21. Assert.assertEquals(4.toBigDecimal(), (maxQTY(1127.toBigDecimal(), BigDecimal.ONE, 257.365.toBigDecimal())))
  22. }
  23.  
  24. @Test
  25. fun checkMaxQTYWithFloatBalanceAndFloatPriceCrossEqualsOne(){
  26. Assert.assertEquals(3.toBigDecimal(), (maxQTY(5803.48.toBigDecimal(), BigDecimal.ONE, 1568.965.toBigDecimal())))
  27. }
  28. @Test
  29. fun checkMaxQTYWithFloatBalanceAndFIntPriceCrossEqualsOne(){
  30. Assert.assertEquals(796.toBigDecimal(), (maxQTY(51803.48.toBigDecimal(), BigDecimal.ONE, 65.toBigDecimal())))
  31. }
  32.  
  33. //check maxQTY with float cross
  34.  
  35. @Test
  36. fun checkMaxQTYWithIntegerPriceAndIntegerBalanceFloatCross(){
  37. Assert.assertEquals(45.toBigDecimal(), (maxQTY(1722.toBigDecimal(), 0.9874.toBigDecimal(), 38.toBigDecimal())))
  38. }
  39.  
  40. @Test
  41. fun checkMaxQTYWithFloatPriceAndIntegerBalanceFloatCross(){
  42. Assert.assertEquals(6590.toBigDecimal(), (maxQTY(99999.toBigDecimal(), 0.05896.toBigDecimal(), 257.365.toBigDecimal())))
  43. }
  44. @Test
  45. fun checkMaxQTYWithIntegerPriceAndFloatBalanceFloatCross(){
  46. Assert.assertEquals(399.toBigDecimal(), (maxQTY(7895.36.toBigDecimal(), 1.97525.toBigDecimal(), 10.toBigDecimal())))
  47. }
  48. @Test
  49. fun checkMaxQTYWithFloatPriceAndFloatBalanceFloatCross(){
  50. Assert.assertEquals(76.toBigDecimal(), (maxQTY(81965.32.toBigDecimal(), 18.6515.toBigDecimal(), 57.36518.toBigDecimal())))
  51. }
  52.  
  53. //check max qty when balance < price
  54. @Test
  55. fun checkMaxQTYBalanceLessPriceCrossEqualsOne(){
  56. Assert.assertEquals(0.toBigDecimal(), (maxQTY(785.toBigDecimal(), BigDecimal.ONE, 1256.toBigDecimal())))
  57. }
  58. @Test
  59. fun checkMaxQtyBalanceLessPriceCrossLessOne(){
  60. Assert.assertEquals(46.toBigDecimal(), (maxQTY(946.toBigDecimal(), 0.00256.toBigDecimal(), 7895.63.toBigDecimal())))
  61. }
  62. @Test
  63. fun checkMaxQTYBalanceLessPriceCrossMOreThanOne(){
  64. Assert.assertEquals(0.toBigDecimal(), (maxQTY(1256.toBigDecimal(), 45.23.toBigDecimal(), 11756.toBigDecimal())))
  65. }
  66.  
  67. //check min qty
  68. @Test
  69. fun checkMinQTYWithMinAmountEqualsZero(){
  70. Assert.assertEquals(BigDecimal.ONE, (minQTY(BigDecimal.ZERO, 45.23.toBigDecimal())))
  71. }
  72. @Test
  73. fun checkMinQTYWithMinAmountEqualsOne(){
  74. Assert.assertEquals(BigDecimal.ONE, (minQTY(BigDecimal.ONE, 1.2356.toBigDecimal())))
  75. }
  76. @Test
  77. fun checkMinQTYWitnMinAmountIntAndIntPrice(){
  78. Assert.assertEquals(31.toBigDecimal(), (minQTY(17896.toBigDecimal(), 596.toBigDecimal())))
  79. }
  80. @Test
  81. fun checkMinQTYWithIntMinAmountAndFloatPrice(){
  82. Assert.assertEquals(34.toBigDecimal(), (minQTY(1896.toBigDecimal(), 56.25698.toBigDecimal())))
  83. }
  84. @Test
  85. fun checkMinQTYWithFloatMinAmountAndIntPrice(){
  86. Assert.assertEquals(723.toBigDecimal(), (minQTY(56321.89.toBigDecimal(), 78.toBigDecimal())))
  87. }
  88. @Test
  89. fun checkMinQTYWithFloatMinAmountAndFloatPrice(){
  90. Assert.assertEquals(2691.toBigDecimal(), (minQTY(9845.36.toBigDecimal(), 3.6589.toBigDecimal())))
  91. }
  92. @Test
  93. fun checkMinQTYWhenMinAmountDivideByPriceLessOne(){
  94. Assert.assertEquals(BigDecimal.ONE, (minQTY(7896.toBigDecimal(), 12896.354.toBigDecimal())))
  95. }
  96.  
  97. //check minQTYAccountCurrency
  98. @Test
  99. fun checkMinQTYAccountCurrencyWithIntMinAmountAndIntCross(){
  100. Assert.assertEquals(425.toBigDecimal(), (minQTYAccountCurrency(5.toBigDecimal(), 85.toBigDecimal())))
  101. }
  102. @Test
  103. fun checkMinQTYAccountCurrencyWithIntMinAmountAndFloatCross(){
  104. Assert.assertEquals(1222.toBigDecimal(), (minQTYAccountCurrency(14.3659.toBigDecimal(), 85.toBigDecimal())))
  105. }
  106. @Test
  107. fun checkMinQTYAccountCurrencyWithFloatMinAmountAndIntCross(){
  108. Assert.assertEquals(1198.toBigDecimal(), (minQTYAccountCurrency(14.toBigDecimal(), 85.569.toBigDecimal())))
  109. }
  110. @Test
  111. fun checkMinQTYAccountCurrencyWithFloatMinAmountAndFloatCross(){
  112. Assert.assertEquals(1483.toBigDecimal(), (minQTYAccountCurrency(14.3659.toBigDecimal(), 103.23.toBigDecimal())))
  113. }
  114. @Test
  115. fun checkMinQTYAccountCurrencyWithCrossEqualsOne(){
  116. Assert.assertEquals(73.toBigDecimal(), (minQTYAccountCurrency(BigDecimal.ONE, 73.toBigDecimal())))
  117. }
  118.  
  119. @Test
  120. fun checkMinQTYAccountCurrencyWithCrossEqualsNull(){
  121. Assert.assertEquals(73.toBigDecimal(), (minQTYAccountCurrency(null, 73.toBigDecimal())))
  122. }
  123.  
  124. //check neededAmount
  125. @Test
  126. fun checkNeededAmountWithIntBalance(){
  127. Assert.assertEquals(159307.toBigDecimal(),neededAmount(101256.toBigDecimal(),1589.toBigDecimal(),1.589.toBigDecimal()))
  128. }
  129. @Test
  130. fun checkNeededAmountWithFloatBalance(){
  131. Assert.assertEquals(15840.toBigDecimal(),neededAmount(10968.toBigDecimal(),1589.45.toBigDecimal(),1.589.toBigDecimal()))
  132. }
  133. @Test
  134. fun checkNeededAmountWhenDifferenceMinQTYAndBalanceLessZero(){
  135. Assert.assertEquals(BigDecimal.ONE,neededAmount(1000.toBigDecimal(),1588.22.toBigDecimal(),1.589.toBigDecimal()))
  136. }
  137. @Test
  138. fun checkNeededAmountWhenBalanceMoreThenMinQTY(){
  139. Assert.assertEquals((-7236).toBigDecimal(),neededAmount(10.toBigDecimal(),7252.15.toBigDecimal(),1.589.toBigDecimal()))
  140. }
  141. @Test
  142. fun checkNeededAmountWhenBalanceEqualsMinQTY(){
  143. Assert.assertEquals(BigDecimal.ZERO,neededAmount(18.toBigDecimal(),67.toBigDecimal(),3.685.toBigDecimal()))
  144. }
  145.  
  146. @Test
  147. fun checkInvestmentValueWithIntQTYIntNavIntCross(){
  148. Assert.assertEquals(520200.toBigDecimal(),investmentValue(17.toBigDecimal(), 850.toBigDecimal(), 36.toBigDecimal()))
  149. }
  150. @Test
  151. fun checkInvestmentValueWithIntQTYIntNavFloatCross(){
  152. Assert.assertEquals(772.07.toBigDecimal(),investmentValue(17.toBigDecimal(), 53.toBigDecimal(), 0.8569.toBigDecimal()).scaleUp(2))
  153. }
  154. @Test
  155. fun checkInvestmentValueWithIntQTYFloatNavIntCross(){
  156. Assert.assertEquals("5830.10".toBigDecimal(),investmentValue(17.toBigDecimal(), 9.5263.toBigDecimal(), 36.toBigDecimal()).scaleUp(2))
  157. }
  158. @Test
  159. fun checkInvestmentValueWithIntQTYFloatNavFloatCross(){
  160. Assert.assertEquals(74.27.toBigDecimal(),investmentValue(8.toBigDecimal(), 25.36954.toBigDecimal(), 0.3659.toBigDecimal()).scaleUp(2))
  161. }
  162. @Test
  163. fun checkInvestmentValueWithFloatQTYIntNavIntCross(){
  164. Assert.assertEquals(4343.06.toBigDecimal(),investmentValue(58.69.toBigDecimal(), 1.toBigDecimal(), 74.toBigDecimal()))
  165. }
  166. @Test
  167. fun checkInvestmentValueWithFloatQTYIntNavFloatCross(){
  168. Assert.assertEquals(167.95.toBigDecimal(),investmentValue(5.69.toBigDecimal(), 8.toBigDecimal(), 3.68954.toBigDecimal()).scaleUp(2))
  169. }
  170. @Test
  171. fun checkInvestmentValueWithFloatQTYFloatNavIntCross(){
  172. Assert.assertEquals(250.65.toBigDecimal(),investmentValue(3.25.toBigDecimal(), 8.569.toBigDecimal(), 9.toBigDecimal()).scaleUp(2))
  173. }
  174. @Test
  175. fun checkInvestmentValueWithFloatQTYFloatNavFloatCross(){
  176. Assert.assertEquals(4.59.toBigDecimal(),investmentValue(2.36.toBigDecimal(), 7.5698.toBigDecimal(), 0.2569.toBigDecimal()).scaleUp(2))
  177. }
  178. @Test
  179. fun checkInvestmentValueWithCrossEqualsNull(){
  180. Assert.assertEquals(14450.toBigDecimal(),investmentValue(17.toBigDecimal(), 850.toBigDecimal(), null))
  181. }
  182.  
  183. //check qty
  184. @Test
  185. fun checkQTYWithIntInvestIntNavIntCross(){
  186. Assert.assertEquals(18.toBigDecimal(),qty(1500.toBigDecimal(), 17.toBigDecimal(), 5.toBigDecimal()))
  187. }
  188. @Test
  189. fun checkQTYWithIntInvestIntNavFloatCross(){
  190. Assert.assertEquals(25.toBigDecimal(),qty(1548.toBigDecimal(), 17.toBigDecimal(), 3.68974.toBigDecimal()))
  191. }
  192. @Test
  193. fun checkQTYWithIntInvestFloatNavIntCross(){
  194. Assert.assertEquals(261.toBigDecimal(),qty(754.toBigDecimal(), 0.96587.toBigDecimal(), 3.toBigDecimal()))
  195. }
  196. @Test
  197. fun checkQTYWithIntInvestFloatNavFloatCross(){
  198. Assert.assertEquals(6.toBigDecimal(),qty(65.toBigDecimal(), 1.2569.toBigDecimal(), 9.987456.toBigDecimal()))
  199. }
  200. @Test
  201. fun checkQTYWithFloatInvestIntNavIntCross(){
  202. Assert.assertEquals(106.toBigDecimal(),qty(8956.65.toBigDecimal(), 17.toBigDecimal(), 5.toBigDecimal()))
  203. }
  204. @Test
  205. fun checkQTYWithFloatInvestIntNavFloatCross(){
  206. Assert.assertEquals(2.toBigDecimal(),qty(85.36.toBigDecimal(), 8.toBigDecimal(), 9.5682.toBigDecimal()))
  207. }
  208. @Test
  209. fun checkQTYWithFloatInvestFloatNavIntCross(){
  210. Assert.assertEquals(24.toBigDecimal(),qty(853.26.toBigDecimal(), 7.2156.toBigDecimal(), 5.toBigDecimal()))
  211. }
  212. @Test
  213. fun checkQTYWithFloatInvestFloatNavFloatCross(){
  214. Assert.assertEquals(2.toBigDecimal(),qty(8753.21.toBigDecimal(), 654.25.toBigDecimal(), 11.6589.toBigDecimal()))
  215. }
  216. @Test
  217. fun checkQTYWithCrossEqualsNull(){
  218. Assert.assertEquals(59.toBigDecimal(),qty(546.toBigDecimal(), 9.256.toBigDecimal(), null))
  219. }
  220. @Test
  221. fun checkQTYWithResultLessOne(){
  222. Assert.assertEquals(1.toBigDecimal(),qty(1500.toBigDecimal(), 1726.25.toBigDecimal(), 13.2658.toBigDecimal()))
  223. }
  224.  
  225. //check positionValue
  226. @Test
  227. fun checkPositionValueWithIntQtyAndIntNav(){
  228. Assert.assertEquals(7.toBigDecimal(),positionValue(BigDecimal.ONE, 7.toBigDecimal()))
  229. }
  230. @Test
  231. fun checkPositionValueWithIntQtyAndNavLessOne(){
  232. Assert.assertEquals( 0.03.toBigDecimal(),positionValue(BigDecimal.ONE, 0.02365.toBigDecimal()).scaleUp(2))
  233. }
  234. @Test
  235. fun checkPositionValueWithIntQtyAndLargeNav() {
  236. Assert.assertEquals(25917741340589.47.toBigDecimal(),
  237. positionValue(10111256.toBigDecimal(), 2563256.369.toBigDecimal()).scaleUp(2))
  238.  
  239. }
  240.  
  241. //check position profit
  242. @Test
  243. fun checkPositionProfitWhenCurrentValueEqualsGetInvested(){
  244. Assert.assertEquals(BigDecimal.ZERO.scaleUp(2), positionProfit(1.7563.toBigDecimal(), 1.7563.toBigDecimal(),17.toBigDecimal(),BigDecimal.ONE, BigDecimal.ONE))
  245. }
  246. @Test
  247. fun checkPositionProfitWhenCurrentValueMoreThenGetInvested(){
  248. Assert.assertEquals(2238.78.toBigDecimal(), positionProfit(1.7563.toBigDecimal(), 1.1123.toBigDecimal(),99.toBigDecimal(),36.852.toBigDecimal(), 36.215.toBigDecimal()))
  249. }
  250. @Test
  251. fun checkPositionProfitWhenCurrentValueLessGetInvested(){
  252. Assert.assertEquals((-37.06).toBigDecimal(), positionProfit(11.23659.toBigDecimal(), 11.9863.toBigDecimal(),17.toBigDecimal(),3.852.toBigDecimal(), 3.915.toBigDecimal()))
  253. }
  254.  
  255. //check getInvested
  256. @Test
  257. fun checkGetInvestedWithIntOpPriceIntVolumeFloatCross(){
  258. Assert.assertEquals(691.99.toBigDecimal(),getInvested(10.toBigDecimal(),56.toBigDecimal(),1.23569.toBigDecimal()))
  259. }
  260. @Test
  261. fun checkGetInvestedWithIntOpPriceIntVolumeIntCross(){
  262. Assert.assertEquals("162.00".toBigDecimal(),getInvested(9.toBigDecimal(),6.toBigDecimal(),3.toBigDecimal()))
  263. }
  264. @Test
  265. fun checkGetInvestedWithIntOpPriceFloatVolumeIntCross(){
  266. Assert.assertEquals("2721.60".toBigDecimal(),getInvested(10.toBigDecimal(),45.36.toBigDecimal(),6.toBigDecimal()))
  267. }
  268. @Test
  269. fun checkGetInvestedWithIntOpPriceFloatVolumeFloatCross(){
  270. Assert.assertEquals(69.57.toBigDecimal(),getInvested(10.toBigDecimal(),5.63.toBigDecimal(),1.23569.toBigDecimal()))
  271. }
  272. @Test
  273. fun checkGetInvestedWithFloatOpPriceIntVolumeIntCross(){
  274. Assert.assertEquals(3934.16.toBigDecimal(),getInvested(17.5632.toBigDecimal(),56.toBigDecimal(),4.toBigDecimal()))
  275. }
  276. @Test
  277. fun checkGetInvestedWithFloatOpPriceIntVolumeFloatCross(){
  278. Assert.assertEquals(4710.96.toBigDecimal(),getInvested(17.5632.toBigDecimal(),56.toBigDecimal(),4.7898.toBigDecimal()))
  279. }
  280. @Test
  281. fun checkGetInvestedWithFloatOpPriceFloatVolumeIntCross(){
  282. Assert.assertEquals(349.92.toBigDecimal(),getInvested(1.00125.toBigDecimal(),87.3695.toBigDecimal(),4.toBigDecimal()))
  283. }
  284. @Test
  285. fun checkGetInvestedWithFloatOpPriceFloatVolumeFloatCross(){
  286. Assert.assertEquals(4.57.toBigDecimal(),getInvested(1.632.toBigDecimal(),7.5632.toBigDecimal(),0.3695.toBigDecimal()))
  287. }
  288. @Test
  289. fun checkGetInvestedWhenResultLessOne(){
  290. Assert.assertEquals(0.01.toBigDecimal(),getInvested(0.12563.toBigDecimal(),1.toBigDecimal(),0.002563.toBigDecimal()))
  291. }
  292.  
  293. //check currentValue
  294. @Test
  295. fun checkCurrentValueWithIntNavIntCross(){
  296. Assert.assertEquals("5400.00".toBigDecimal(), currentValue(12.toBigDecimal(),6.toBigDecimal(),75.toBigDecimal()))
  297. }
  298. @Test
  299. fun checkCurrentValueWithIntNavFloatCross(){
  300. Assert.assertEquals(607.35.toBigDecimal(), currentValue(12.toBigDecimal(),6.3265.toBigDecimal(),8.toBigDecimal()))
  301. }
  302. @Test
  303. fun checkCurrentValueWithFloatNavIntCross(){
  304. Assert.assertEquals(72773.19.toBigDecimal(), currentValue(1732.695.toBigDecimal(),6.toBigDecimal(),7.toBigDecimal()))
  305. }
  306. @Test
  307. fun checkCurrentValueWithFloatNavFloatCross(){
  308. Assert.assertEquals(341.57.toBigDecimal(), currentValue(32.1695.toBigDecimal(),0.96523.toBigDecimal(),11.toBigDecimal()))
  309. }
  310. @Test
  311. fun checkCurrentValueWithCrossEqualsNull(){
  312. Assert.assertEquals(12128.87.toBigDecimal(), currentValue(1732.695.toBigDecimal(),null,7.toBigDecimal()))
  313. }
  314. @Test
  315. fun checkCurrentValueWhenResultLessOne(){
  316. Assert.assertEquals(0.01.toBigDecimal(), currentValue(0.2563.toBigDecimal(),0.02563.toBigDecimal(),1.toBigDecimal()))
  317. }
  318.  
  319. //check redeemCurrentValue
  320.  
  321. @Test
  322. fun checkRedeemCurrentValueWithIntCurrentValueIntQtyIntMaxQty(){
  323. Assert.assertEquals(2.1875.toBigDecimal(),redeemCurrentValue(15.toBigDecimal(), 14.toBigDecimal(), 96.toBigDecimal()))
  324. }
  325. @Test
  326. fun checkRedeemCurrentValueWithFloatCurrentValueIntQtyIntMaxQty(){
  327. Assert.assertEquals(5.08.toBigDecimal(),redeemCurrentValue(7.56.toBigDecimal(), 49.toBigDecimal(), 73.toBigDecimal()).scaleUp(2))
  328. }
  329. @Test
  330. fun checkRedeemCurrentValueWihenQtyEqualsMaxQty(){
  331. Assert.assertEquals(3.56.toBigDecimal(),redeemCurrentValue(3.56.toBigDecimal(), 73.toBigDecimal(), 73.toBigDecimal()))
  332. }
  333. @Test
  334. fun checkRedeemCurrentValueWithQtyAndCurrentValueEqualsOne(){
  335. Assert.assertEquals(0.02.toBigDecimal(),redeemCurrentValue(1.toBigDecimal(), 1.toBigDecimal(), 73.toBigDecimal()).scaleUp(2))
  336. }
  337.  
  338. //check totalCurrentValue
  339. @Test
  340. fun checkTotalCurrentValueWithIntInvestedIntProfit(){
  341. Assert.assertEquals(185.toBigDecimal(),totalCurrentValue(100.toBigDecimal(), 85.toBigDecimal()))
  342. }
  343. @Test
  344. fun checkTotalCurrentValueWithIntInvestedFloatProfit(){
  345. Assert.assertEquals(113.26.toBigDecimal(),totalCurrentValue(100.toBigDecimal(), 13.26.toBigDecimal()))
  346. }
  347. @Test
  348. fun checkTotalCurrentValueWithFloatInvestedIntProfit(){
  349. Assert.assertEquals(117.56.toBigDecimal(),totalCurrentValue(100.56.toBigDecimal(), 17.toBigDecimal()))
  350. }
  351. @Test
  352. fun checkTotalCurrentValueWithFloatInvestedFloatProfit(){
  353. Assert.assertEquals(3385.29.toBigDecimal(),totalCurrentValue(1020.06.toBigDecimal(), 2365.23.toBigDecimal()))
  354. }
  355. @Test
  356. fun checkTotalCurrentValueWithNegativeProfit(){
  357. Assert.assertEquals(491.71.toBigDecimal(),totalCurrentValue(745.36.toBigDecimal(), (-253.65).toBigDecimal()))
  358. }
  359. @Test
  360. fun checkTotalCurrentValueWithNegativeProfitMoreThenInvested(){
  361. Assert.assertEquals((-2365.17).toBigDecimal(),totalCurrentValue(7500.06.toBigDecimal(), (-9865.23).toBigDecimal()))
  362. }
  363. @Test
  364. fun checkTotalCurrentValueWithProfitEqualsZero(){
  365. Assert.assertEquals(500.06.toBigDecimal(),totalCurrentValue(500.06.toBigDecimal(), BigDecimal.ZERO))
  366. }
  367. @Test
  368. fun checkTotalCurrentValueWithInvestedEqualsNullAndProfitEqualsZero(){
  369. Assert.assertEquals(BigDecimal.ZERO,totalCurrentValue(null, BigDecimal.ZERO))
  370. }
  371. @Test
  372. fun checkTotalCurrentValueWithInvestedEqualsNull(){
  373. Assert.assertEquals(745.56.toBigDecimal(),totalCurrentValue(null, 745.56.toBigDecimal()))
  374. }
  375.  
  376. //check val
  377. @Test
  378. fun checkVal(){
  379. val firstPair = ProfitAndInvested((-1256).toBigDecimal(), (-98.3).toBigDecimal())
  380. val secondPair = ProfitAndInvested((-1256).toBigDecimal(), 852.3.toBigDecimal())
  381. val thirdPair = ProfitAndInvested((-56).toBigDecimal(), BigDecimal.ZERO)
  382. val forthPair = ProfitAndInvested(1256.toBigDecimal(), 698.39.toBigDecimal())
  383. val fifthPair = ProfitAndInvested(BigDecimal.ZERO, BigDecimal.ZERO)
  384. val sixthPair = ProfitAndInvested((156).toBigDecimal(), BigDecimal.ZERO)
  385.  
  386. val dataForTest = listOf(firstPair, secondPair, thirdPair, forthPair, fifthPair, sixthPair)
  387. dataForTest.toTotalProfitWithCurrentValue
  388.  
  389. Assert.assertEquals((-859.61).toBigDecimal(), dataForTest.toTotalProfitWithCurrentValue.first + dataForTest.toTotalProfitWithCurrentValue.second)
  390. }
  391. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement