투자관리 화면 수정

This commit is contained in:
Macbook
2026-05-31 17:34:26 +09:00
parent d6c2f3e451
commit 4f2d98d4ba
20 changed files with 696 additions and 56 deletions
@@ -0,0 +1,44 @@
package com.goldenchart.service;
import com.goldenchart.entity.GcPaperSymbolAllocation;
import org.junit.jupiter.api.Test;
import java.math.BigDecimal;
import static org.junit.jupiter.api.Assertions.*;
class PaperTradeStageServiceTest {
@Test
void stagedBuyAdvancesBySignal() {
GcPaperSymbolAllocation a = GcPaperSymbolAllocation.builder()
.buyStage1Krw(BigDecimal.valueOf(100_000))
.buyStage2Krw(BigDecimal.valueOf(200_000))
.buyStageDone(0)
.build();
assertTrue(PaperTradeStageService.usesStagedTrading(a));
assertEquals(100_000, PaperTradeStageService.nextBuyStageKrw(a));
PaperTradeStageService.advanceBuyStage(a);
assertEquals(200_000, PaperTradeStageService.nextBuyStageKrw(a));
assertEquals(0, PaperTradeStageService.nextSellStageKrw(a));
}
@Test
void resetAfterFlatPosition() {
GcPaperSymbolAllocation a = GcPaperSymbolAllocation.builder()
.buyStageDone(2)
.sellStageDone(1)
.build();
PaperTradeStageService.resetTradeStages(a);
assertEquals(0, a.getBuyStageDone());
assertEquals(0, a.getSellStageDone());
}
@Test
void sellQtyCappedByAvailable() {
double qty = PaperTradeStageService.sellQtyForStageKrw(500_000, 0.5, 100_000);
assertEquals(0.5, qty, 1e-9);
double partial = PaperTradeStageService.sellQtyForStageKrw(500_000, 0.001, 100_000);
assertEquals(0.001, partial, 1e-9);
}
}