50 files changed,
551 insertions(+),
112 deletions(-)
Author:
Oleksandr Smirnov
olexsmir@gmail.com
Committed at:
2026-05-23 17:52:23 +0300
Authored at:
2026-05-20 20:19:57 +0300
Change ID:
lozuxzmqwurulskyzqqlmxnnnqxxrwot
Parent:
cb14fd1
jump to
A
journal/testdata/journals/actual-ledger-baseline-opt-lots-basis.dat
··· 1 +; source: ledger/test/baseline/opt-lots_basis.test 2 +C 1.00s = 100c 3 +C 1.00G = 100s 4 + 5 +D 1.00G 6 + 7 +2006/03/14 Opening Balances 8 + Assets:Tajer 1339829c 9 + Assets:Gruulmorg 248720c 10 + Equity:Gold 11 + 12 +2006/03/14 Auction House 13 + Expenses:Fees:Auction 1428c 14 + Expenses:Fees:Auction 768c 15 + Expenses:Fees:Auction 612c 16 + Expenses:Fees:Auction 4764c 17 + Expenses:Fees:Auction 3372c 18 + Expenses:Fees:Auction 1296c 19 + Expenses:Fees:Auction 1332c 20 + Expenses:Fees:Auction 660c 21 + Expenses:Fees:Auction 10044c 22 + Expenses:Fees:Auction 3588c 23 + Expenses:Fees:Auction 1632c 24 + Expenses:Fees:Auction 8388c 25 + Expenses:Fees:Auction 9984c 26 + Expenses:Fees:Auction 2316c 27 + Assets:Tajer 28 + 29 +2006/03/14 Auction House 30 + Assets:Tajer 158860c 31 + Equity:Gold 32 + 33 +2006/03/14 Auction House 34 + Expenses:Fees:Auction 1320c 35 + Assets:Tajer 36 + 37 +2006/03/14 Auction House 38 + Assets:Tajer 11496c 39 + Equity:Gold 40 + 41 +2006/03/14 Auction House 42 + Expenses:Fees:Auction 3216c 43 + Assets:Tajer 44 + 45 +2006/03/14 Post 46 + Expenses:Fees:Mail 30c 47 + Assets:Gruulmorg 48 + 49 +2006/03/14 Auction House 50 + Assets:Tajer 34678c 51 + Equity:Gold 52 + 53 +2006/03/14 Auction House 54 + Expenses:Fees:Auction 2316c 55 + Assets:Tajer 56 + 57 +2006/03/14 Auction House 58 + Assets:Gruulmorg 1G 59 + Equity:Gold 60 + 61 +2006/03/14 Auction House 62 + Assets:Tajer 59389c 63 + Equity:Gold 64 + 65 +2006/03/14 Post 66 + Expenses:Fees:Mail 120c 67 + Assets:Tajer 68 + 69 +2006/03/14 Player 70 + Assets:Tajer 3G 71 + Equity:Gold 72 + 73 +2006/03/14 Player 74 + Assets:Tajer 6G 75 + Equity:Gold 76 + 77 +2006/03/14 Auction House 78 + Expenses:Items 35s 79 + Assets:Tajer 80 + 81 +2006/03/14 Auction House 82 + Assets:Tajer:Items "Plans: Wildthorn Mail" 1 @ 125s 83 + Assets:Tajer 84 + 85 +2006/03/14 Auction House 86 + Assets:Bids 259c 87 + Assets:Bids 45s 88 + Assets:Bids 4720c 89 + Assets:Tajer 90 + 91 +2006/03/14 Post 92 + Expenses:Fees:Mail 120c 93 + Assets:Tajer 94 + 95 +2006/03/14 Auction House 96 + Expenses:Items 8G 97 + Assets:Tajer 98 + 99 +2006/03/14 Post 100 + Expenses:Fees:Mail 120c 101 + Assets:Tajer 102 + 103 +2006/03/14 Puldoost 104 + Assets:Tajer 8G 105 + Expenses:Items 106 + 107 +2006/03/14 Auction House 108 + Assets:Wyshona:Items "Plans: Wildthorn Mail" 1 {1.25G} 109 + Assets:Tajer:Items 110 + 111 +2006/03/15 Auction House 112 + Assets:Tajer 45s 113 + Assets:Tajer 259c 114 + Assets:Bids 115 + 116 +2006/03/15 Auction House 117 + Assets:Tajer 4720c 118 + Assets:Bids 119 + 120 +2006/03/15 Auction House 121 + Expenses:Fees:Auction 12542c ; something got lost here 122 + Assets:Tajer 123 + 124 +2006/03/15 Auction House 125 + Expenses:Fees:Auction 2375c 126 + Expenses:Fees:Auction -2375c 127 + Assets:Gruulmorg 128 + 129 +2006/03/15 Auction House 130 + Assets:Danell 4c 131 + Equity:Gold 132 + 133 +2006/03/15 Transfer 134 + Assets:Gruulmorg 2c 135 + Assets:Danell 136 + 137 +2006/03/15 Transfer 138 + Assets:Danell 4250c 139 + Expenses:Fees:Auction 750c 140 + Assets:Gruulmorg -50s 141 + 142 +2006/03/15 Post 143 + Expenses:Fees:Mail 60c 144 + Assets:Danell 145 + 146 +2006/03/15 Player 147 + Assets:Tajer 3G 148 + Equity:Gold 149 + 150 +2006/03/15 Post 151 + Assets:Wyshona 40s 152 + Expenses:Fees:Mail 30c 153 + Assets:Danell 154 + 155 +2006/03/15 Auction House 156 + Expenses:Fees:Auction 8s 157 + Expenses:Fees:Auction 11s 158 + Assets:Wyshona 159 + 160 +2006/03/15 Auction House 161 + Assets:Tajer:Items "Beaststalker's Belt" 1 @ 65G 162 + Assets:Tajer 163 + 164 +2006/03/15 Post 165 + Expenses:Fees:Mail 30c 166 + Assets:Tajer 167 + 168 +2006/03/15 Auction House 169 + Expenses:Fees:Auction 8268c 170 + Assets:Tajer 171 + 172 +2006/03/15 Post 173 + Expenses:Fees:Mail 30c 174 + Assets:Tajer 175 + 176 +2006/03/15 Vendor 177 + Assets:Tajer 16744c 178 + Assets:Tajer 16640c 179 + Equity:Gold 180 + 181 +2006/03/15 Post 182 + Expenses:Fees:Mail 30c 183 + Assets:Tajer 184 + 185 +2006/03/15 Auction House 186 + Expenses:Fees:Auction 772c 187 + Expenses:Fees:Auction 544c 188 + Expenses:Fees:Auction 444c 189 + Expenses:Fees:Auction 432c 190 + Expenses:Fees:Auction 204c 191 + Assets:Tajer 192 + 193 +2006/03/15 Player 194 + Assets:Tajer 12s 195 + Equity:Gold 196 + 197 +2006/03/15 Vendor 198 + Assets:Tajer 22s 199 + Equity:Gold 200 + 201 +2006/03/15 Auction House 202 + Assets:Tajer:Items "Recipe: Elixir of Giant Growth" 1 @ 1G 203 + Assets:Tajer 204 + 205 +2006/03/15 Post 206 + Expenses:Fees:Mail 30c 207 + Assets:Tajer 208 + 209 +2006/03/15 Auction House 210 + Expenses:Fees:Auction 8268c 211 + Assets:Tajer 212 + 213 +2006/03/15 Auction House 214 + Assets:Tajer:Items "Plans: Mithril Shield Spike" 1 @ 21050c 215 + Assets:Tajer 216 + 217 +2006/03/15 Auction House 218 + Assets:Tajer:Items "Plans: Mithril Shield Spike" 1 @ 23000c 219 + Assets:Tajer 220 + 221 +2006/03/15 Auction House 222 + Assets:Tajer:Items "Recipe: Elixir of Giant Growth" 1 @ 150s 223 + Assets:Tajer 224 + 225 +2006/03/16 Player 226 + Assets:Tajer 3G 227 + Equity:Gold 228 + 229 +2006/03/16 Post 230 + Expenses:Fees:Mail 90c 231 + Assets:Tajer 232 + 233 +2006/03/16 Auction House 234 + Assets:Tajer 1195768c 235 + Assets:Tajer:Items "Beaststalker's Belt" -1 {65G} @ 1195768c 236 + Income:Brokering -545768c 237 + 238 +2006/03/16 Auction House 239 + Assets:Wyshona:Items "Plans: Mithril Shield Spike" 1 {21050c} 240 + Assets:Wyshona:Items "Plans: Mithril Shield Spike" 1 {2.3G} 241 + Assets:Wyshona:Items "Recipe: Elixir of Giant Growth" 1 {1G} 242 + Assets:Wyshona:Items "Recipe: Elixir of Giant Growth" 1 {1.5G} 243 + Assets:Tajer:Items 244 + 245 +2006/03/16 Player 246 + Assets:Tajer 4G 247 + Equity:Gold 248 + 249 +2006/03/16 Auction House 250 + Assets:Wyshona 1341s 251 + Equity:Gold 252 + 253 +2006/03/16 Auction House 254 + Assets:Gruulmorg 4c 255 + Assets:Danell 256 + 257 +2006/03/16 Auction House 258 + Expenses:Fees:Auction 4c 259 + Expenses:Fees:Mail 120c 260 + Assets:Danell 261 + 262 +2006/03/16 Auction House 263 + Expenses:Fees:Auction 24s 264 + Expenses:Fees:Auction 12s 265 + Expenses:Fees:Auction 12s 266 + Expenses:Fees:Auction 84c 267 + Expenses:Fees:Auction 84c 268 + Assets:Wyshona 269 + 270 +2006/03/16 Crazy Cat Lady 271 + Expenses:Items 40s 272 + Expenses:Items 40s 273 + Assets:Wyshona 274 + 275 +2006/03/16 Transfer 276 + Expenses:Fees:Mail 60c 277 + Assets:Danell 5G 278 + Assets:Wyshona 279 + 280 +2006/03/16 Transfer 281 + Expenses:Fees:Mail 30c 282 + Assets:Tajer 20G 283 + Assets:Gruulmorg 284 + 285 +2006/03/16 Auction House 286 + Assets:Tajer:Items "Pulsating Hydra Heart" 1 @ 1G 287 + Assets:Tajer 288 + 289 +2006/03/16 Auction House 290 + Expenses:Fees:Auction 936c 291 + Assets:Tajer 292 + 293 +2006/03/16 Transfer 294 + Expenses:Fees:Mail 30c 295 + Assets:Gruulmorg 30G 296 + Assets:Tajer 297 + 298 +2006/03/16 Auction House 299 + Assets:Gruulmorg:Items "Ace of Warlords" 2 @ 15G 300 + Assets:Gruulmorg 301 + 302 +2006/03/16 Transfer 303 + Assets:Tajer:Items "Ace of Warlords" 2 {15G} 304 + Assets:Gruulmorg:Items 305 + 306 +2006/03/16 Post 307 + Expenses:Fees:Mail 60c 308 + Assets:Gruulmorg 309 + 310 +2006/03/16 Post 311 + Expenses:Fees:Mail 120c 312 + Assets:Tajer 313 + 314 +2006/03/16 Auction House 315 + Assets:Tajer 2104c 316 + Equity:Gold 317 + 318 +2006/03/16 Auction House 319 + Expenses:Fees:Auction 75s 320 + Expenses:Fees:Auction 75s 321 + Assets:Tajer 322 + 323 +2006/03/16 Transfer 324 + Assets:Danell 6c 325 + Assets:Gruulmorg 326 + 327 +2006/03/16 Post 328 + Expenses:Fees:Mail 60c 329 + Assets:Gruulmorg 330 + 331 +2006/03/16 Post 332 + Expenses:Fees:Mail 60c 333 + Assets:Tajer 334 + 335 +2006/03/16 General Goods Vendor 336 + Expenses:Items 50c ; wrapping paper 337 + Assets:Tajer 338 + 339 +2006/03/16 Player 340 + Assets:Tajer 1G 341 + Equity:Gold 342 + 343 +2006/03/17 Auction House 344 + Assets:Wyshona 180584c 345 + Assets:Wyshona:Items "Recipe: Elixir of Giant Growth" -1 {1.5G} @ 180584c 346 + Income:Brokering -165584c 347 + 348 +2006/03/17 Auction House 349 + Assets:Wyshona 180584c 350 + Assets:Wyshona:Items "Recipe: Elixir of Giant Growth" -1 {1G} @ 180584c 351 + Income:Brokering -170584c 352 + 353 +2006/03/17 Post 354 + Expenses:Fees:Mail 30c 355 + Assets:Tajer 356 + 357 +2006/03/17 Player: raev 358 + Assets:Tajer:Items "Wildheart Belt" 1 @ 30G 359 + Assets:Tajer:Items "Ace of Warlords" -2 @ 15G 360 + 361 +2006/03/17 Auction House 362 + Expenses:Fees:Auction 7482c 363 + Assets:Tajer 364 + 365 +2006/03/17 Post 366 + Expenses:Fees:Mail 300c 367 + Assets:Wyshona 368 + 369 +2006/03/17 Player 370 + Assets:Wyshona 1G 371 + Assets:Wyshona:Items "Plans: Wildthorn Mail" -1 {1.25G} @ 1G 372 + Expenses:Capital Loss 25s 373 + 374 +2006/03/17 Auction House (implicit transfer) 375 + Expenses:Items 279s ; Recipe: Swiftness Potion 376 + Assets:Wyshona 377 + 378 +2006/03/17 Auction House (implicit transfer) 379 + Assets:Danell:Items "Ace of Warlords" 1 @ 3G 380 + Assets:Tajer:Items "Ace of Warlords" 1 @ 3.9G 381 + Assets:Tajer:Items "Holy Bologna" 1 @ 2G 382 + Assets:Tajer:Items "The Emerald Dream" 1 @ 4G 383 + Assets:Tajer:Items "The Arcanist's Cookbook" 1 @ 4G 384 + Assets:Tajer:Items "Harnessing Shadows" 1 @ 5G 385 + Assets:Tajer:Items "Garona: Book on Treachery" 1 @ 4G 386 + Assets:Tajer:Items "Preserved Holly" 5 @ 20s 387 + Assets:Wyshona 388 + 389 +2006/03/17 Auction House 390 + Assets:Tajer 4G 391 + Assets:Tajer:Items "Pulsating Hydra Heart" -1 {1G} @ 4G 392 + Income:Brokering -3G 393 + 394 +2006/03/17 Auction House 395 + Assets:Danell 3171c 396 + Assets:Danell:Items "Ace of Warlords" -1 {3G} @ 3171c 397 + Expenses:Capital Loss 26829c 398 + 399 +2006/03/17 Auction House 400 + Expenses:Fees:Auction 12537c 401 + Assets:Danell 402 + 403 +2006/03/17 Transfer 404 + Assets:Gruulmorg 15G 405 + Expenses:Fees:Mail 30c 406 + Assets:Tajer 407 + 408 +2006/03/17 Auction House 409 + Assets:Wyshona 362450c 410 + Assets:Wyshona:Items "Plans: Mithril Shield Spike" -1 {21050c} @ 181225c 411 + Assets:Wyshona:Items "Plans: Mithril Shield Spike" -1 {2.3G} @ 181225c 412 + Income:Brokering -318400c 413 + 414 +2006/03/17 Transfer 415 + Assets:Danell 499560c 416 + Expenses:Gifts 1G 417 + Expenses:Fees:Mail 30c 418 + Assets:Wyshona 419 + 420 +2006/03/17 Post 421 + Expenses:Fees:Mail 90c 422 + Expenses:Fees:Auction 166c 423 + Assets:Gruulmorg 424 + 425 +2006/03/17 Transfer 426 + Assets:Gruulmorg 459211c 427 + Expenses:Fees:Auction 81023c 428 + Assets:Danell -540234c 429 + 430 +2006/03/17 Transfer 431 + Assets:Tajer 662465c 432 + Expenses:Fees:Mail 30c 433 + Assets:Gruulmorg 434 + 435 +2006/03/17 Auction House 436 + Expenses:Fees:Auction 75s 437 + Expenses:Fees:Mail 30c 438 + Assets:Tajer 439 + 440 +2006/03/18 Auction House 441 + Assets:Tajer 15G 442 + Assets:Tajer:Items "Ace of Warlords" -1 {3.9G} @ 15G 443 + Income:Brokering -111000c 444 + 445 +2006/03/18 Auction House 446 + Assets:Tajer 434472c 447 + Assets:Tajer:Items "Wildheart Belt" -1 {30G} @ 434472c 448 + Income:Brokering -134472c 449 + 450 +2006/03/18 Auction House 451 + Assets:Tajer 1995s 452 + Assets:Tajer:Items "Harnessing Shadows" -1 {5G} @ 1995s 453 + Income:Brokering -1495s 454 + 455 +2006/03/19 Auction House 456 + Assets:Tajer 2850s 457 + Assets:Tajer:Items "Garona: Book on Treachery" -1 {4G} @ 2850s 458 + Income:Brokering -2450s 459 + 460 +2006/03/19 Auction House 461 + Assets:Tajer 1710s 462 + Assets:Tajer:Items "The Arcanist's Cookbook" -1 {4G} @ 1710s 463 + Income:Brokering -1310s 464 + 465 +2006/03/19 Auction House 466 + Assets:Tajer 46550c 467 + Assets:Tajer:Items "Preserved Holly" -5 {20s} @ 9310c 468 + Income:Brokering -36550c 469 + 470 +2006/03/19 Auction House 471 + Assets:Tajer:Items "Two of Portals" 1 @ 3G 472 + Assets:Tajer:Items "Two of Portals" 1 @ 2.5G 473 + Assets:Tajer 474 + 475 +2006/03/20 Auction House 476 + Assets:Tajer 163443c 477 + Assets:Tajer:Items "Holy Bologna" -1 {2G} @ 163443c 478 + Income:Brokering -143443c 479 + 480 +2006/03/20 Auction House 481 + Assets:Tajer 5G 482 + Assets:Tajer:Items "Two of Portals" -1 {3G} @ 5G 483 + Income:Brokering -2G 484 + 485 +2006/03/20 Auction House 486 + Assets:Tajer 15G 487 + Assets:Tajer:Items "The Emerald Dream" -1 {4G} @ 15G 488 + Income:Brokering -11G 489 + 490 +2006/03/20 Auction House 491 + Expenses:Fees:Mail 60c 492 + Assets:Tajer 493 + 494 +2006/03/21 Auction House 495 + Assets:Tajer:Items "Orb of Deception" 1 @ 170G 496 + Assets:Tajer 497 + 498 +2006/03/21 Auction House 499 + Expenses:Fees:Auction 2760c 500 + Expenses:Fees:Auction 2760c 501 + Assets:Tajer 502 + 503 +2006/03/22 Auction House 504 + Assets:Tajer:Items "Nightblade" 1 @ 200G 505 + Assets:Tajer 506 + 507 +2006/03/22 Auction House 508 + Expenses:Fees:Auction 177s 509 + Expenses:Fees:Auction 177s 510 + Expenses:Fees:Auction 177s 511 + Expenses:Fees:Auction 177s 512 + Expenses:Fees:Auction 75s 513 + Assets:Tajer 514 + 515 +2006/03/23 Auction House 516 + Assets:Tajer 1665260c 517 + Assets:Tajer:Items "Orb of Deception" -1 {170G} @ 1665260c 518 + Expenses:Capital Loss 34740c 519 + 520 +2006/03/26 Auction House 521 + Assets:Tajer 81980c 522 + Assets:Tajer:Items "Two of Portals" -1 {2.5G} @ 81980c 523 + Income:Brokering -56980c 524 + 525 +2006/03/26 Player 526 + Expenses:Items 150s ; Recipe: Elixir of Minor Agility 527 + Expenses:Fees:Mail 30c 528 + Expenses:Fees:Mail 30c 529 + Assets:Tajer 530 + 531 +2006/03/27 Player 532 + Assets:Tajer 160G 533 + Assets:Tajer:Items "Nightblade" -1 {200G} @ 160G 534 + Expenses:Capital Loss 40G 535 + 536 +2006/03/27 Player 537 + Expenses:Fees:Mail 30c 538 + Assets:Tajer 539 + 540 +2006/03/26 Player 541 + Expenses:Items (9G * 6) ; Traveler's backpacks 542 + Expenses:Items 10G 543 + Expenses:Fees:Bank 10G 544 + Expenses:Fees:Mail 630c 545 + Expenses:Fees:Mail 330c 546 + Expenses:Fees:Mail 30c 547 + Assets:Tajer 548 + 549 +2006/04/01 Auction House 550 + Assets:Tajer:Items "Orb of Deception" 1 @ 155G 551 + Assets:Tajer
D
tests/test.go
··· 1 -package main 2 - 3 -import ( 4 - "fmt" 5 - "os" 6 - "path/filepath" 7 - 8 - "olexsmir.xyz/clerk/journal" 9 -) 10 - 11 -type test struct { 12 - Desc string 13 - Broken bool 14 -} 15 - 16 -var testCases = map[string]test{ 17 - "actual-1ktxns-100accts.journal": {Desc: "hledger stress test: 1000 transactions, 100 accounts, number-only account names"}, 18 - "actual-accounttypes.journal": {Desc: "hledger: account type annotations (type:A, type:L) via comments"}, 19 - "actual-alias.journal": {Desc: "hledger: account alias directives for renaming"}, 20 - "actual-borrowing.journal": {Desc: "hledger: borrowing/lending example with liabilities"}, 21 - "actual-business.journal": {Desc: "hledger: simple business transactions with commodities"}, 22 - "actual-goal-budget-1.journal": {Desc: "hledger: goal budget using periodic transactions"}, 23 - "actual-i18n-en.journal": {Desc: "hledger: internationalization with account types in English"}, 24 - "actual-ledger-input-divzero.dat": {Desc: "ledger-cli: fuzz corpus, designed to cause divide-by-zero"}, 25 - "actual-ledger-input-parsing.dat": {Desc: "ledger-cli: fuzz corpus, tests EOF without newline"}, 26 - "actual-ledger-input-sample.dat": {Desc: "ledger-cli: fuzz corpus, default commodity directive"}, 27 - "actual-ledger-input-standard.dat": {Desc: "ledger-cli: fuzz corpus, standard ledger format"}, 28 - "actual-ledger-input-transfer.dat": {Desc: "ledger-cli: fuzz corpus, byte quantity (non-monetary)"}, 29 - "actual-ledger-input-wow.dat": {Broken: true, Desc: "ledger-cli: fuzz corpus, World of Warcraft currency (1G=100s)"}, 30 - "actual-multicurrency.journal": {Desc: "hledger: multi-currency transactions with HRK/EUR"}, 31 - "actual-personal.journal": {Desc: "hledger: simple personal finance example"}, 32 - "actual-quickstart.journal": {Desc: "hledger: quickstart guide with commodity directive"}, 33 - "actual-sample.journal": {Desc: "hledger: comprehensive sample with account tree"}, 34 - "actual-sample2.journal": {Desc: "hledger: sample2 with balance assertions and account directives"}, 35 - "actual-status.journal": {Desc: "hledger: tests all transaction statuses (unmarked, pending, cleared)"}, 36 - "actual-templates.journal": {Desc: "hledger: entry template examples with comments"}, 37 - "actual-unicode.journal": {Desc: "hledger: unicode in descriptions, account names, currency"}, 38 - "actual-vat.journal": {Desc: "hledger: VAT tracking example"}, 39 - "apply-tag-block.dat": {Desc: "ledger-cli: apply-tag block directive"}, 40 - "automated-posting-rule.dat": {Desc: "ledger-cli: automated posting rules (= /^Expenses/)"}, 41 - "basic-ledger.dat": {Desc: "ledger-cli: basic income/expense transaction"}, 42 - "basic.journal": {Desc: "hledger: minimal setup with account/commodity directives"}, 43 - "broken-double-at.journal": {Broken: true, Desc: "synthetic: intentionally broken (@@) syntax"}, 44 - "broken-rparen.journal": {Broken: true, Desc: "synthetic: intentionally broken unmatched )"}, 45 - "broken-unknown-directive.journal": {Broken: true, Desc: "synthetic: intentionally broken unknown directive (??)"}, 46 - "code-note.dat": {Desc: "ledger-cli: transaction with code, payee, comments"}, 47 - "commodity-space.dat": {Desc: "ledger-cli: commodity with space before amount ($ 10.00)"}, 48 - "cost-balance-assertion.dat": {Desc: "ledger-cli: cost notation and balance assertion (@ 1 USD = 20.00 UAH)"}, 49 - "directives-supported.journal": {Desc: "mixed: tests account, commodity, include, alias directives"}, 50 - "ext-hledger-i18n-no.journal": {Desc: "hledger i18n example: uppercase directive values currently mis-tokenized"}, 51 - "ext-hledger-self-tracking-d.dat": {Desc: "hledger self-tracking example with date+time transaction headers"}, 52 - "ext-hledger-status.journal": {Desc: "hledger status example: ! (virtual:posting)"}, 53 - "ext-ledger-parsing.dat": {Desc: "ledger parsing corpus: -$ amount form"}, 54 - "header-comments.journal": {Desc: "hledger: transaction with header comment"}, 55 - "inclusive-balance-star.journal": {Desc: "hledger: inclusive balance with ==*"}, 56 - "multicurrency-supported.journal": {Desc: "hledger: working multi-currency with EUR exchange"}, 57 - "periodic-basic.journal": {Desc: "hledger: periodic transaction (~ monthly)"}, 58 - "secondary-date-note.journal": {Desc: "hledger: secondary date and transaction note"}, 59 - "status-basic.journal": {Desc: "hledger: transaction status (pending with !)"}, 60 - "unicode-cjk-emoji.journal": {Desc: "synthetic: unicode CJK and emoji in transaction descriptions"}, 61 - "unicode-cyrillic.journal": {Desc: "synthetic: unicode Cyrillic in descriptions and account names"}, 62 - "unicode-mixed-languages.journal": {Desc: "synthetic: mixed latin/cyrillic/cjk in descriptions and account names"}, 63 - "virtual-posting.dat": {Desc: "ledger-cli: virtual/balanced postings with [brackets]"}, 64 -} 65 - 66 -func main() { 67 - failures := 0 68 - for name, tc := range testCases { 69 - loader := journal.NewLoader() 70 - pf, err := loader.Load(filepath.Join("tests/journal", name)) 71 - if err != nil { 72 - if tc.Broken { 73 - fmt.Printf("SKIP %s: %s\n", name, tc.Desc) 74 - continue 75 - } 76 - fmt.Printf("FAIL %s: %v\n", name, err) 77 - failures++ 78 - continue 79 - } 80 - 81 - if len(pf.Errors)+len(pf.FileErrors) > 0 { 82 - if tc.Broken { 83 - fmt.Printf("SKIP %s: %s\n", name, tc.Desc) 84 - continue 85 - } 86 - 87 - fmt.Printf("FAIL %s: %d parse errors, %d file errors\n", name, len(pf.Errors), len(pf.FileErrors)) 88 - for i, e := range pf.Errors { 89 - if i >= 5 { 90 - fmt.Printf(" ... and %d more parse errors\n", len(pf.Errors)-5) 91 - break 92 - } 93 - fmt.Printf(" %s\n", e.Message) 94 - } 95 - for i, e := range pf.FileErrors { 96 - if i >= 5 { 97 - fmt.Printf(" ... and %d more file errors\n", len(pf.FileErrors)-5) 98 - break 99 - } 100 - fmt.Printf(" [%s] %s\n", e.Path, e.Message) 101 - } 102 - failures++ 103 - } else { 104 - fmt.Printf("PASS %s\n", name) 105 - } 106 - } 107 - 108 - fmt.Printf("\n%d files failed\n", failures) 109 - if failures > 0 { 110 - os.Exit(1) 111 - } 112 -}