import XCTest @testable import PortfolioJournal @MainActor final class ChartsViewModelDisplayRulesTests: XCTestCase { func testAllocationTargetsSupportedOnlyForCategoryBreakdown() { XCTAssertTrue(ChartsViewModel.supportsAllocationTargets(for: .category)) XCTAssertFalse(ChartsViewModel.supportsAllocationTargets(for: .source)) } func testEvolutionTimeRangesIncludeRequestedOptions() { let viewModel = ChartsViewModel(iapService: IAPService()) let ranges = viewModel.availableTimeRanges(for: .evolution) XCTAssertEqual(ranges, [.all, .yearToDate, .year, .quarter]) } func testYearToDateRangeStartsAtBeginningOfYear() { let calendar = Calendar(identifier: .gregorian) let referenceDate = calendar.date(from: DateComponents(year: 2026, month: 8, day: 15))! let startDate = ChartsViewModel.TimeRange.yearToDate.startDate(referenceDate: referenceDate) let expected = calendar.date(from: DateComponents(year: 2026, month: 1, day: 1))! XCTAssertEqual(startDate, expected) } }