Changeset View
Changeset View
Standalone View
Standalone View
kmymoney/reports/pivottabletest.cpp
Show First 20 Lines • Show All 730 Lines • ▼ Show 20 Line(s) | 720 | { | |||
---|---|---|---|---|---|
731 | TransactionHelper t1y2(QDate(2005, 1, 1), MyMoneySplit::ActionWithdrawal, moSolo, acChecking, acSolo); | 731 | TransactionHelper t1y2(QDate(2005, 1, 1), MyMoneySplit::ActionWithdrawal, moSolo, acChecking, acSolo); | ||
732 | TransactionHelper t2y2(QDate(2005, 5, 1), MyMoneySplit::ActionWithdrawal, moParent1, acCredit, acParent); | 732 | TransactionHelper t2y2(QDate(2005, 5, 1), MyMoneySplit::ActionWithdrawal, moParent1, acCredit, acParent); | ||
733 | TransactionHelper t3y2(QDate(2005, 9, 1), MyMoneySplit::ActionWithdrawal, moParent2, acCredit, acParent); | 733 | TransactionHelper t3y2(QDate(2005, 9, 1), MyMoneySplit::ActionWithdrawal, moParent2, acCredit, acParent); | ||
734 | 734 | | |||
735 | MyMoneyReport filter; | 735 | MyMoneyReport filter; | ||
736 | filter.setRowType(MyMoneyReport::eExpenseIncome); | 736 | filter.setRowType(MyMoneyReport::eExpenseIncome); | ||
737 | filter.setDateFilter(QDate(2003, 12, 31), QDate(2005, 12, 31)); | 737 | filter.setDateFilter(QDate(2003, 12, 31), QDate(2005, 12, 31)); | ||
738 | filter.setRowType(MyMoneyReport::eExpenseIncome); | 738 | filter.setRowType(MyMoneyReport::eExpenseIncome); | ||
739 | filter.setColumnType(MyMoneyReport::eBiMonths); | 739 | filter.setColumnType(MyMoneyReport::Column::BiMonths); | ||
740 | XMLandback(filter); | 740 | XMLandback(filter); | ||
741 | PivotTable spending_b(filter); | 741 | PivotTable spending_b(filter); | ||
742 | 742 | | |||
743 | QVERIFY(spending_b.m_grid.m_total[eActual][1] == moZero); | 743 | QVERIFY(spending_b.m_grid.m_total[eActual][1] == moZero); | ||
744 | QVERIFY(spending_b.m_grid.m_total[eActual][2] == -moParent1 - moSolo); | 744 | QVERIFY(spending_b.m_grid.m_total[eActual][2] == -moParent1 - moSolo); | ||
745 | QVERIFY(spending_b.m_grid.m_total[eActual][3] == -moParent2 - moSolo); | 745 | QVERIFY(spending_b.m_grid.m_total[eActual][3] == -moParent2 - moSolo); | ||
746 | QVERIFY(spending_b.m_grid.m_total[eActual][4] == -moParent); | 746 | QVERIFY(spending_b.m_grid.m_total[eActual][4] == -moParent); | ||
747 | QVERIFY(spending_b.m_grid.m_total[eActual][5] == moZero); | 747 | QVERIFY(spending_b.m_grid.m_total[eActual][5] == moZero); | ||
748 | QVERIFY(spending_b.m_grid.m_total[eActual][6] == moZero); | 748 | QVERIFY(spending_b.m_grid.m_total[eActual][6] == moZero); | ||
749 | QVERIFY(spending_b.m_grid.m_total[eActual][7] == moZero); | 749 | QVERIFY(spending_b.m_grid.m_total[eActual][7] == moZero); | ||
750 | QVERIFY(spending_b.m_grid.m_total[eActual][8] == -moSolo); | 750 | QVERIFY(spending_b.m_grid.m_total[eActual][8] == -moSolo); | ||
751 | QVERIFY(spending_b.m_grid.m_total[eActual][9] == moZero); | 751 | QVERIFY(spending_b.m_grid.m_total[eActual][9] == moZero); | ||
752 | QVERIFY(spending_b.m_grid.m_total[eActual][10] == -moParent1); | 752 | QVERIFY(spending_b.m_grid.m_total[eActual][10] == -moParent1); | ||
753 | QVERIFY(spending_b.m_grid.m_total[eActual][11] == moZero); | 753 | QVERIFY(spending_b.m_grid.m_total[eActual][11] == moZero); | ||
754 | QVERIFY(spending_b.m_grid.m_total[eActual][12] == -moParent2); | 754 | QVERIFY(spending_b.m_grid.m_total[eActual][12] == -moParent2); | ||
755 | QVERIFY(spending_b.m_grid.m_total[eActual][13] == moZero); | 755 | QVERIFY(spending_b.m_grid.m_total[eActual][13] == moZero); | ||
756 | 756 | | |||
757 | filter.setColumnType(MyMoneyReport::eQuarters); | 757 | filter.setColumnType(MyMoneyReport::Column::Quarters); | ||
758 | XMLandback(filter); | 758 | XMLandback(filter); | ||
759 | PivotTable spending_q(filter); | 759 | PivotTable spending_q(filter); | ||
760 | 760 | | |||
761 | QVERIFY(spending_q.m_grid.m_total[eActual][1] == moZero); | 761 | QVERIFY(spending_q.m_grid.m_total[eActual][1] == moZero); | ||
762 | QVERIFY(spending_q.m_grid.m_total[eActual][2] == -moSolo - moParent); | 762 | QVERIFY(spending_q.m_grid.m_total[eActual][2] == -moSolo - moParent); | ||
763 | QVERIFY(spending_q.m_grid.m_total[eActual][3] == -moSolo - moParent); | 763 | QVERIFY(spending_q.m_grid.m_total[eActual][3] == -moSolo - moParent); | ||
764 | QVERIFY(spending_q.m_grid.m_total[eActual][4] == moZero); | 764 | QVERIFY(spending_q.m_grid.m_total[eActual][4] == moZero); | ||
765 | QVERIFY(spending_q.m_grid.m_total[eActual][5] == moZero); | 765 | QVERIFY(spending_q.m_grid.m_total[eActual][5] == moZero); | ||
Show All 14 Lines | |||||
780 | QVERIFY(networth_q.m_grid.m_total[eActual][4] == -moSolo - moParent - moSolo - moParent + moCheckingOpen + moCreditOpen); | 780 | QVERIFY(networth_q.m_grid.m_total[eActual][4] == -moSolo - moParent - moSolo - moParent + moCheckingOpen + moCreditOpen); | ||
781 | QVERIFY(networth_q.m_grid.m_total[eActual][5] == -moSolo - moParent - moSolo - moParent + moCheckingOpen + moCreditOpen); | 781 | QVERIFY(networth_q.m_grid.m_total[eActual][5] == -moSolo - moParent - moSolo - moParent + moCheckingOpen + moCreditOpen); | ||
782 | QVERIFY(networth_q.m_grid.m_total[eActual][6] == -moSolo - moSolo - moParent - moSolo - moParent + moCheckingOpen + moCreditOpen); | 782 | QVERIFY(networth_q.m_grid.m_total[eActual][6] == -moSolo - moSolo - moParent - moSolo - moParent + moCheckingOpen + moCreditOpen); | ||
783 | QVERIFY(networth_q.m_grid.m_total[eActual][7] == -moParent1 - moSolo - moSolo - moParent - moSolo - moParent + moCheckingOpen + moCreditOpen); | 783 | QVERIFY(networth_q.m_grid.m_total[eActual][7] == -moParent1 - moSolo - moSolo - moParent - moSolo - moParent + moCheckingOpen + moCreditOpen); | ||
784 | QVERIFY(networth_q.m_grid.m_total[eActual][8] == -moParent2 - moParent1 - moSolo - moSolo - moParent - moSolo - moParent + moCheckingOpen + moCreditOpen); | 784 | QVERIFY(networth_q.m_grid.m_total[eActual][8] == -moParent2 - moParent1 - moSolo - moSolo - moParent - moSolo - moParent + moCheckingOpen + moCreditOpen); | ||
785 | QVERIFY(networth_q.m_grid.m_total[eActual][9] == -moParent2 - moParent1 - moSolo - moSolo - moParent - moSolo - moParent + moCheckingOpen + moCreditOpen); | 785 | QVERIFY(networth_q.m_grid.m_total[eActual][9] == -moParent2 - moParent1 - moSolo - moSolo - moParent - moSolo - moParent + moCheckingOpen + moCreditOpen); | ||
786 | 786 | | |||
787 | filter.setRowType(MyMoneyReport::eExpenseIncome); | 787 | filter.setRowType(MyMoneyReport::eExpenseIncome); | ||
788 | filter.setColumnType(MyMoneyReport::eYears); | 788 | filter.setColumnType(MyMoneyReport::Column::Years); | ||
789 | XMLandback(filter); | 789 | XMLandback(filter); | ||
790 | PivotTable spending_y(filter); | 790 | PivotTable spending_y(filter); | ||
791 | 791 | | |||
792 | QVERIFY(spending_y.m_grid.m_total[eActual][1] == moZero); | 792 | QVERIFY(spending_y.m_grid.m_total[eActual][1] == moZero); | ||
793 | QVERIFY(spending_y.m_grid.m_total[eActual][2] == -moSolo - moParent - moSolo - moParent); | 793 | QVERIFY(spending_y.m_grid.m_total[eActual][2] == -moSolo - moParent - moSolo - moParent); | ||
794 | QVERIFY(spending_y.m_grid.m_total[eActual][3] == -moSolo - moParent); | 794 | QVERIFY(spending_y.m_grid.m_total[eActual][3] == -moSolo - moParent); | ||
795 | QVERIFY(spending_y.m_grid.m_total[eActual].m_total == -moSolo - moParent - moSolo - moParent - moSolo - moParent); | 795 | QVERIFY(spending_y.m_grid.m_total[eActual].m_total == -moSolo - moParent - moSolo - moParent - moSolo - moParent); | ||
796 | 796 | | |||
Show All 16 Lines | |||||
813 | TransactionHelper t3d2(QDate(2004, 7, 20), MyMoneySplit::ActionWithdrawal, moParent2, acCredit, acParent); | 813 | TransactionHelper t3d2(QDate(2004, 7, 20), MyMoneySplit::ActionWithdrawal, moParent2, acCredit, acParent); | ||
814 | 814 | | |||
815 | TransactionHelper t1d3(QDate(2004, 8, 2), MyMoneySplit::ActionWithdrawal, moSolo, acChecking, acSolo); | 815 | TransactionHelper t1d3(QDate(2004, 8, 2), MyMoneySplit::ActionWithdrawal, moSolo, acChecking, acSolo); | ||
816 | TransactionHelper t2d3(QDate(2004, 8, 3), MyMoneySplit::ActionWithdrawal, moParent1, acCredit, acParent); | 816 | TransactionHelper t2d3(QDate(2004, 8, 3), MyMoneySplit::ActionWithdrawal, moParent1, acCredit, acParent); | ||
817 | TransactionHelper t3d3(QDate(2004, 8, 4), MyMoneySplit::ActionWithdrawal, moParent2, acCredit, acParent); | 817 | TransactionHelper t3d3(QDate(2004, 8, 4), MyMoneySplit::ActionWithdrawal, moParent2, acCredit, acParent); | ||
818 | 818 | | |||
819 | filter.setDateFilter(QDate(2004, 7, 2), QDate(2004, 7, 14)); | 819 | filter.setDateFilter(QDate(2004, 7, 2), QDate(2004, 7, 14)); | ||
820 | filter.setRowType(MyMoneyReport::eExpenseIncome); | 820 | filter.setRowType(MyMoneyReport::eExpenseIncome); | ||
821 | filter.setColumnType(MyMoneyReport::eMonths); | 821 | filter.setColumnType(MyMoneyReport::Column::Months); | ||
822 | filter.setColumnsAreDays(true); | 822 | filter.setColumnsAreDays(true); | ||
823 | filter.setName("Spending by Days"); | 823 | filter.setName("Spending by Days"); | ||
824 | 824 | | |||
825 | XMLandback(filter); | 825 | XMLandback(filter); | ||
826 | PivotTable spending_days(filter); | 826 | PivotTable spending_days(filter); | ||
827 | writeTabletoHTML(spending_days, "Spending by Days.html"); | 827 | writeTabletoHTML(spending_days, "Spending by Days.html"); | ||
828 | 828 | | |||
829 | QVERIFY(spending_days.m_grid.m_total[eActual][4] == -moParent2); | 829 | QVERIFY(spending_days.m_grid.m_total[eActual][4] == -moParent2); | ||
830 | QVERIFY(spending_days.m_grid.m_total[eActual][13] == -moSolo); | 830 | QVERIFY(spending_days.m_grid.m_total[eActual][13] == -moSolo); | ||
831 | QVERIFY(spending_days.m_grid.m_total[eActual].m_total == -moSolo - moParent2); | 831 | QVERIFY(spending_days.m_grid.m_total[eActual].m_total == -moSolo - moParent2); | ||
832 | 832 | | |||
833 | unsigned save_dayweekstart = KGlobal::locale()->weekStartDay(); | 833 | unsigned save_dayweekstart = KGlobal::locale()->weekStartDay(); | ||
834 | KGlobal::locale()->setWeekStartDay(2); | 834 | KGlobal::locale()->setWeekStartDay(2); | ||
835 | 835 | | |||
836 | filter.setDateFilter(QDate(2004, 7, 2), QDate(2004, 8, 1)); | 836 | filter.setDateFilter(QDate(2004, 7, 2), QDate(2004, 8, 1)); | ||
837 | filter.setRowType(MyMoneyReport::eExpenseIncome); | 837 | filter.setRowType(MyMoneyReport::eExpenseIncome); | ||
838 | filter.setColumnType(static_cast<MyMoneyReport::EColumnType>(7)); | 838 | filter.setColumnType(static_cast<MyMoneyReport::Column::Type>(7)); | ||
839 | filter.setColumnsAreDays(true); | 839 | filter.setColumnsAreDays(true); | ||
840 | filter.setName("Spending by Weeks"); | 840 | filter.setName("Spending by Weeks"); | ||
841 | 841 | | |||
842 | XMLandback(filter); | 842 | XMLandback(filter); | ||
843 | PivotTable spending_weeks(filter); | 843 | PivotTable spending_weeks(filter); | ||
844 | writeTabletoHTML(spending_weeks, "Spending by Weeks.html"); | 844 | writeTabletoHTML(spending_weeks, "Spending by Weeks.html"); | ||
845 | 845 | | |||
846 | KGlobal::locale()->setWeekStartDay(save_dayweekstart); | 846 | KGlobal::locale()->setWeekStartDay(save_dayweekstart); | ||
▲ Show 20 Lines • Show All 89 Lines • ▼ Show 20 Line(s) | |||||
936 | { | 936 | { | ||
937 | 937 | | |||
938 | // 1. Budget on A, transactions on A | 938 | // 1. Budget on A, transactions on A | ||
939 | { | 939 | { | ||
940 | BudgetHelper budget; | 940 | BudgetHelper budget; | ||
941 | budget += BudgetEntryHelper(QDate(2006, 1, 1), acSolo, false, MyMoneyMoney(100.0)); | 941 | budget += BudgetEntryHelper(QDate(2006, 1, 1), acSolo, false, MyMoneyMoney(100.0)); | ||
942 | 942 | | |||
943 | MyMoneyReport report(MyMoneyReport::eBudgetActual, | 943 | MyMoneyReport report(MyMoneyReport::eBudgetActual, | ||
944 | MyMoneyReport::eMonths, | 944 | MyMoneyReport::Column::Months, | ||
945 | MyMoneyTransactionFilter::yearToDate, | 945 | MyMoneyTransactionFilter::yearToDate, | ||
946 | MyMoneyReport::eDetailTop, | 946 | MyMoneyReport::eDetailTop, | ||
947 | "Yearly Budgeted vs. Actual", "Default Report"); | 947 | "Yearly Budgeted vs. Actual", "Default Report"); | ||
948 | PivotTable table(report); | 948 | PivotTable table(report); | ||
949 | } | 949 | } | ||
950 | 950 | | |||
951 | // 2. Budget on B, not applying to sub accounts, transactions on B and B:1 | 951 | // 2. Budget on B, not applying to sub accounts, transactions on B and B:1 | ||
952 | { | 952 | { | ||
953 | BudgetHelper budget; | 953 | BudgetHelper budget; | ||
954 | budget += BudgetEntryHelper(QDate(2006, 1, 1), acParent, false, MyMoneyMoney(100.0)); | 954 | budget += BudgetEntryHelper(QDate(2006, 1, 1), acParent, false, MyMoneyMoney(100.0)); | ||
955 | MyMoneyReport report(MyMoneyReport::eBudgetActual, | 955 | MyMoneyReport report(MyMoneyReport::eBudgetActual, | ||
956 | MyMoneyReport::eMonths, | 956 | MyMoneyReport::Column::Months, | ||
957 | MyMoneyTransactionFilter::yearToDate, | 957 | MyMoneyTransactionFilter::yearToDate, | ||
958 | MyMoneyReport::eDetailTop, | 958 | MyMoneyReport::eDetailTop, | ||
959 | "Yearly Budgeted vs. Actual", "Default Report"); | 959 | "Yearly Budgeted vs. Actual", "Default Report"); | ||
960 | PivotTable table(report); | 960 | PivotTable table(report); | ||
961 | } | 961 | } | ||
962 | 962 | | |||
963 | // - Both B and B:1 totals should show up | 963 | // - Both B and B:1 totals should show up | ||
964 | // - B actuals compare against B budget | 964 | // - B actuals compare against B budget | ||
965 | // - B:1 actuals compare against 0 | 965 | // - B:1 actuals compare against 0 | ||
966 | 966 | | |||
967 | // 3. Budget on C, applying to sub accounts, transactions on C and C:1 and C:1:a | 967 | // 3. Budget on C, applying to sub accounts, transactions on C and C:1 and C:1:a | ||
968 | { | 968 | { | ||
969 | BudgetHelper budget; | 969 | BudgetHelper budget; | ||
970 | budget += BudgetEntryHelper(QDate(2006, 1, 1), acParent, true, MyMoneyMoney(100.0)); | 970 | budget += BudgetEntryHelper(QDate(2006, 1, 1), acParent, true, MyMoneyMoney(100.0)); | ||
971 | MyMoneyReport report(MyMoneyReport::eBudgetActual, | 971 | MyMoneyReport report(MyMoneyReport::eBudgetActual, | ||
972 | MyMoneyReport::eMonths, | 972 | MyMoneyReport::Column::Months, | ||
973 | MyMoneyTransactionFilter::yearToDate, | 973 | MyMoneyTransactionFilter::yearToDate, | ||
974 | MyMoneyReport::eDetailTop , | 974 | MyMoneyReport::eDetailTop , | ||
975 | "Yearly Budgeted vs. Actual", "Default Report"); | 975 | "Yearly Budgeted vs. Actual", "Default Report"); | ||
976 | PivotTable table(report); | 976 | PivotTable table(report); | ||
977 | } | 977 | } | ||
978 | 978 | | |||
979 | // - Only C totals show up, not C:1 or C:1:a totals | 979 | // - Only C totals show up, not C:1 or C:1:a totals | ||
980 | // - C + C:1 totals compare against C budget | 980 | // - C + C:1 totals compare against C budget | ||
981 | 981 | | |||
982 | // 4. Budget on D, not applying to sub accounts, budget on D:1 not applying, budget on D:2 applying. Transactions on D, D:1, D:2, D:2:a, D:2:b | 982 | // 4. Budget on D, not applying to sub accounts, budget on D:1 not applying, budget on D:2 applying. Transactions on D, D:1, D:2, D:2:a, D:2:b | ||
983 | { | 983 | { | ||
984 | BudgetHelper budget; | 984 | BudgetHelper budget; | ||
985 | budget += BudgetEntryHelper(QDate(2006, 1, 1), acParent, false, MyMoneyMoney(100.0)); | 985 | budget += BudgetEntryHelper(QDate(2006, 1, 1), acParent, false, MyMoneyMoney(100.0)); | ||
986 | budget += BudgetEntryHelper(QDate(2006, 1, 1), acChild, false, MyMoneyMoney(100.0)); | 986 | budget += BudgetEntryHelper(QDate(2006, 1, 1), acChild, false, MyMoneyMoney(100.0)); | ||
987 | budget += BudgetEntryHelper(QDate(2006, 1, 1), acSecondChild, true, MyMoneyMoney(100.0)); | 987 | budget += BudgetEntryHelper(QDate(2006, 1, 1), acSecondChild, true, MyMoneyMoney(100.0)); | ||
988 | MyMoneyReport report(MyMoneyReport::eBudgetActual, | 988 | MyMoneyReport report(MyMoneyReport::eBudgetActual, | ||
989 | MyMoneyReport::eMonths, | 989 | MyMoneyReport::Column::Months, | ||
990 | MyMoneyTransactionFilter::yearToDate, | 990 | MyMoneyTransactionFilter::yearToDate, | ||
991 | MyMoneyReport::eDetailTop, | 991 | MyMoneyReport::eDetailTop, | ||
992 | "Yearly Budgeted vs. Actual", "Default Report"); | 992 | "Yearly Budgeted vs. Actual", "Default Report"); | ||
993 | PivotTable table(report); | 993 | PivotTable table(report); | ||
994 | } | 994 | } | ||
995 | 995 | | |||
996 | // - Totals for D, D:1, D:2 show up. D:2:a and D:2:b do not | 996 | // - Totals for D, D:1, D:2 show up. D:2:a and D:2:b do not | ||
997 | // - D actuals (only) compare against D budget | 997 | // - D actuals (only) compare against D budget | ||
998 | // - Ditto for D:1 | 998 | // - Ditto for D:1 | ||
999 | // - D:2 acutals and children compare against D:2 budget | 999 | // - D:2 acutals and children compare against D:2 budget | ||
1000 | 1000 | | |||
1001 | // 5. Budget on E, no transactions on E | 1001 | // 5. Budget on E, no transactions on E | ||
1002 | { | 1002 | { | ||
1003 | BudgetHelper budget; | 1003 | BudgetHelper budget; | ||
1004 | budget += BudgetEntryHelper(QDate(2006, 1, 1), acSolo, false, MyMoneyMoney(100.0)); | 1004 | budget += BudgetEntryHelper(QDate(2006, 1, 1), acSolo, false, MyMoneyMoney(100.0)); | ||
1005 | MyMoneyReport report(MyMoneyReport::eBudgetActual, | 1005 | MyMoneyReport report(MyMoneyReport::eBudgetActual, | ||
1006 | MyMoneyReport::eMonths, | 1006 | MyMoneyReport::Column::Months, | ||
1007 | MyMoneyTransactionFilter::yearToDate, | 1007 | MyMoneyTransactionFilter::yearToDate, | ||
1008 | MyMoneyReport::eDetailTop, | 1008 | MyMoneyReport::eDetailTop, | ||
1009 | "Yearly Budgeted vs. Actual", "Default Report"); | 1009 | "Yearly Budgeted vs. Actual", "Default Report"); | ||
1010 | PivotTable table(report); | 1010 | PivotTable table(report); | ||
1011 | } | 1011 | } | ||
1012 | } | 1012 | } | ||
1013 | 1013 | | |||
1014 | void PivotTableTest::testHtmlEncoding() | 1014 | void PivotTableTest::testHtmlEncoding() | ||
Show All 16 Lines |