summaryrefslogtreecommitdiffhomepage
path: root/lib/mintage/parser_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'lib/mintage/parser_test.go')
-rw-r--r--lib/mintage/parser_test.go315
1 files changed, 134 insertions, 181 deletions
diff --git a/lib/mintage/parser_test.go b/lib/mintage/parser_test.go
index 3cc8ea3..76e0f01 100644
--- a/lib/mintage/parser_test.go
+++ b/lib/mintage/parser_test.go
@@ -8,188 +8,151 @@ import (
func TestParserComplete(t *testing.T) {
data, err := Parse(bytes.NewBuffer([]byte(`
- BEGIN 2020
- BEGIN CIRC
- 1.000 1001 1002 1003 1004 1005 1006 1007
- 2000 ? 2002 2003 2004 2005 2006 2007
- BEGIN BU
- 1.100 1101 1102 1103 1104 1105 1106 1107
- 2100 ? 2102 2103 2104 2105 2106 2107
- BEGIN PROOF
- 1.200 1201 1202 1203 1204 1205 1206 1207
- 2200 ? 2202 2203 2204 2205 2206 2207
+ 2020
+ 1000 1001 1002 1003 1004 1005 1006 1007
+ 1100 1101 1102 1103 1104 1105 1106 1107
+ 1200 1201 1202 1203 1204 1205 1206 1207
+ 2021-KNM
+ 2.000 ? 2002 2003 2004 2005 2006 2007
+ 2.100 ? 2102 2103 2104 2105 2106 2107
+ 2.200 ? 2202 2203 2204 2205 2206 2207
+ 2021-MdP
+ 3000 3001 3002 3003 3004 3005 3006 3007
+ 3100 3101 3102 3103 3104 3105 3106 3107
+ 3200 3201 3202 3203 3204 3205 3206 3207
+ 2022
+ 4000 4001 4.002 4003 4004 4005 4006 4007
+ 4100 4101 4.102 4103 4104 4105 4106 4107
+ 4200 4201 4.202 4203 4204 4205 4206 4207
+
+ 2009 "10th Anniversary of Economic and Monetary Union"
+ 1000 2000 3000
+ 2022-ā‹† "35th Anniversary of the Erasmus Programme"
+ 1001 ? 3001
`)), "-")
if err != nil {
t.Fatalf(`Expected err=nil; got "%s"`, err)
}
- if data.StartYear != 2020 {
- t.Fatalf("Expected data.StartYear=2020; got %d",
- data.StartYear)
- }
- for i, row := range data.Tables[TypeCirculated] {
- for j, col := range row.Cols {
- var n int
- if i == 1 && j == 1 {
- n = -1
- } else {
- n = 1000*i + j + 1000
- }
- if col != n {
- t.Fatalf("Expected data.Tables[TypeCirculated][i][j]=%d; got %d", n, col)
+ for i, row := range data.Standard {
+ for k := TypeCirc; k <= TypeProof; k++ {
+ for j, col := range row.Mintages[k] {
+ n := 1000*(i+1) + 100*k + j
+ if i == 1 && j == 1 {
+ n = Unknown
+ }
+ if col != n {
+ t.Fatalf("Expected data.Standard[%d].Mintages[%d][%d]=%d; got %d",
+ i, k, j, col, n)
+ }
}
}
}
- for i, row := range data.Tables[TypeNIFC] {
- for j, col := range row.Cols {
- var n int
- if i == 1 && j == 1 {
- n = -1
- } else {
- n = 1000*i + j + 1100
+ for i, row := range data.Commemorative {
+ for k := TypeCirc; k <= TypeProof; k++ {
+ n := 1000*(k+1) + i
+ if i == 1 && k == 1 {
+ n = Unknown
}
- if col != n {
- t.Fatalf("Expected data.Tables[TypeNIFC][i][j]=%d; got %d", n, col)
+ if row.Mintage[k] != n {
+ t.Fatalf("Expected row.Mintage[%d]=%d; got %d",
+ k, n, row.Mintage[k])
}
}
}
- for i, row := range data.Tables[TypeProof] {
- for j, col := range row.Cols {
- var n int
- if i == 1 && j == 1 {
- n = -1
- } else {
- n = 1000*i + j + 1200
- }
- if col != n {
- t.Fatalf("Expected data.Tables[TypeProof][i][j]=%d; got %d", n, col)
- }
- }
+ if len(data.Standard) != 4 {
+ t.Fatalf("Expected len(data.Standard)=2; got %d", len(data.Standard))
}
-
- if len(data.Tables[TypeCirculated]) != 2 {
- t.Fatalf("Expected len(data.Tables[TypeCirculated])=2; got %d", len(data.Tables[TypeCirculated]))
+ if len(data.Commemorative) != 2 {
+ t.Fatalf("Expected len(data.Commemorative)=2; got %d", len(data.Commemorative))
}
- if len(data.Tables[TypeNIFC]) != 2 {
- t.Fatalf("Expected len(data.Tables[TypeNIFC])=2; got %d", len(data.Tables[TypeNIFC]))
- }
- if len(data.Tables[TypeProof]) != 2 {
- t.Fatalf("Expected len(data.Tables[TypeProof])=2; got %d", len(data.Tables[TypeProof]))
- }
-}
-
-func TestParserNoProof(t *testing.T) {
- data, err := Parse(bytes.NewBuffer([]byte(`
- BEGIN 2020
- BEGIN CIRC
- 1.000 1001 1002 1003 1004 1005 1006 1007
- 2000 ? 2002 2003 2004 2005 2006 2007
- BEGIN BU
- 1.100 1101 1102 1103 1104 1105 1106 1107
- 2100 ? 2102 2103 2104 2105 2106 2107
- `)), "-")
- if err != nil {
- t.Fatalf(`Expected err=nil; got "%s"`, err)
- }
-
- if len(data.Tables[TypeProof]) != 0 {
- t.Fatalf("Expected len(data.Tables[TypeProof])=0; got %d", len(data.Tables[TypeProof]))
+ for i, x := range [...]struct {
+ year int
+ mintmark, name string
+ }{
+ {2009, "", "10th Anniversary of Economic and Monetary Union"},
+ {2022, "ā‹†", "35th Anniversary of the Erasmus Programme"},
+ } {
+ if data.Commemorative[i].Year != x.year {
+ t.Fatalf("Expected data.Commemorative[%d].Year=%d; got %d",
+ i, x.year, data.Commemorative[i].Year)
+ }
+ if data.Commemorative[i].Mintmark != x.mintmark {
+ t.Fatalf(`Expected data.Commemorative[%d].Mintmark="%s"; got "%s"`,
+ i, x.mintmark, data.Commemorative[i].Mintmark)
+ }
+ if data.Commemorative[i].Name != x.name {
+ t.Fatalf(`Expected data.Commemorative[%d].Name="%s"; got "%s"`,
+ i, x.name, data.Commemorative[i].Name)
+ }
}
}
func TestParserMintmarks(t *testing.T) {
data, err := Parse(bytes.NewBuffer([]byte(`
- BEGIN 2020
- BEGIN CIRC
- 1.000 1001 1002 1003 1004 1005 1006 1007
- KNM*: 2000 ? 2002 2003 2004 2005 2006 2007
- MdP: 3000 ? 3002 3003 3004 3005 3006 3007
+ 2020
+ 1000 1001 1002 1003 1004 1005 1006 1007
+ 1100 1101 1102 1103 1104 1105 1106 1107
+ 1200 1201 1202 1203 1204 1205 1206 1207
+ 2021-KNM
+ 2.000 ? 2002 2003 2004 2005 2006 2007
+ 2.100 ? 2102 2103 2104 2105 2106 2107
+ 2.200 ? 2202 2203 2204 2205 2206 2207
+ 2021-MdP
+ 3000 3001 3002 3003 3004 3005 3006 3007
+ 3100 3101 3102 3103 3104 3105 3106 3107
+ 3200 3201 3202 3203 3204 3205 3206 3207
+ 2022
+ 4000 4001 4.002 4003 4004 4005 4006 4007
+ 4100 4101 4.102 4103 4104 4105 4106 4107
+ 4200 4201 4.202 4203 4204 4205 4206 4207
`)), "-")
if err != nil {
t.Fatalf(`Expected err=nil; got "%s"`, err)
}
- for i, row := range data.Tables[TypeCirculated] {
- for j, col := range row.Cols {
- var n int
- if i > 0 && j == 1 {
- n = -1
- } else {
- n = 1000*i + j + 1000
+ for i, row := range data.Standard {
+ for j, col := range row.Mintages[TypeCirc] {
+ n := 1000*(i+1) + j
+ if i == 1 && j == 1 {
+ n = Unknown
}
if col != n {
- t.Fatalf("Expected data.Tables[TypeCirculated][i][j]=%d; got %d", n, col)
+ t.Fatalf("Expected data.Standard[%d].Mintages[TypeCirc][%d]=%d; got %d",
+ i, j, col, n)
}
}
}
- for i, y := range [...]int{2020, 2021, 2021} {
- if data.Tables[TypeCirculated][i].Year != y {
- t.Fatalf("Expected data.Tables[TypeCirculated][%d].Year=%d; got %d",
- i, y, data.Tables[TypeCirculated][i].Year)
+ for i, y := range [...]int{2020, 2021, 2021, 2022} {
+ if data.Standard[i].Year != y {
+ t.Fatalf("Expected data.Standard[%d].Year=%d; got %d",
+ i, y, data.Standard[i].Year)
}
}
- for i, s := range [...]string{"", "KNM", "MdP"} {
- if data.Tables[TypeCirculated][i].Mintmark != s {
- t.Fatalf(`Expected data.Tables[TypeCirculated][%d].Mintmark="%s"; got "%s"`,
- i, s, data.Tables[TypeCirculated][i].Mintmark)
+
+ for i, m := range [...]string{"", "KNM", "MdP", ""} {
+ if data.Standard[i].Mintmark != m {
+ t.Fatalf(`Expected data.Standard[%d].Mintmark="%s"; got "%s"`,
+ i, m, data.Standard[i].Mintmark)
}
}
}
func TestParserNoYear(t *testing.T) {
_, err := Parse(bytes.NewBuffer([]byte(`
- BEGIN CIRC
- 1.000 1001 1002 1003 1004 1005 1006 1007
- 2000 ? 2002 2003 2004 2005 2006 2007
- BEGIN BU
- 1.100 1101 1102 1103 1104 1105 1106 1107
- 2100 ? 2102 2103 2104 2105 2106 2107
- BEGIN PROOF
- 1.200 1201 1202 1203 1204 1205 1206 1207
- 2200 ? 2202 2203 2204 2205 2206 2207
- `)), "-")
-
- var sErr SyntaxError
- if !errors.As(err, &sErr) {
- t.Fatalf("Expected err=SyntaxError; got %s", err)
- }
-}
-
-func TestParserNoType(t *testing.T) {
- _, err := Parse(bytes.NewBuffer([]byte(`
- BEGIN 2020
- 1.000 1001 1002 1003 1004 1005 1006 1007
- 2000 ? 2002 2003 2004 2005 2006 2007
- BEGIN BU
- 1.100 1101 1102 1103 1104 1105 1106 1107
- 2100 ? 2102 2103 2104 2105 2106 2107
- BEGIN PROOF
- 1.200 1201 1202 1203 1204 1205 1206 1207
- 2200 ? 2202 2203 2204 2205 2206 2207
- `)), "-")
-
- var sErr SyntaxError
- if !errors.As(err, &sErr) {
- t.Fatalf("Expected err=SyntaxError; got %s", err)
- }
-}
-
-func TestParserNoYearOrType(t *testing.T) {
- _, err := Parse(bytes.NewBuffer([]byte(`
- 1.000 1001 1002 1003 1004 1005 1006 1007
- 2000 ? 2002 2003 2004 2005 2006 2007
- BEGIN BU
- 1.100 1101 1102 1103 1104 1105 1106 1107
- 2100 ? 2102 2103 2104 2105 2106 2107
- BEGIN PROOF
- 1.200 1201 1202 1203 1204 1205 1206 1207
- 2200 ? 2202 2203 2204 2205 2206 2207
+ 1.000 1001 1002 1003 1004 1005 1006 1007
+ 1.100 1101 1102 1103 1104 1105 1106 1107
+ 1.200 1201 1202 1203 1204 1205 1206 1207
+ 2021
+ 2000 ? 2002 2003 2004 2005 2006 2007
+ 2100 ? 2102 2103 2104 2105 2106 2107
+ 2200 ? 2202 2203 2204 2205 2206 2207
`)), "-")
var sErr SyntaxError
@@ -200,17 +163,14 @@ func TestParserNoYearOrType(t *testing.T) {
func TestParserBadToken(t *testing.T) {
_, err := Parse(bytes.NewBuffer([]byte(`
- BEGIN 2020
- BEGIN CIRC
- 1.000 1001 1002 1003 1004 1005 1006 1007
- Iā€™m bad
- 2000 ? 2002 2003 2004 2005 2006 2007
- BEGIN BU
- 1.100 1101 1102 1103 1104 1105 1106 1107
- 2100 ? 2102 2103 2104 2105 2106 2107
- BEGIN PROOF
- 1.200 1201 1202 1203 1204 1205 1206 1207
- 2200 ? 2202 2203 2204 2205 2206 2207
+ 2020
+ 1.000 1001 1002 1003 1004 1005 1006 1007
+ 1.100 1101 1102 1103 1104 1105 1106 1107
+ 1.200 1201 1202 1203 1204 1205 1206 1207
+ 2021 Naughty!
+ 2000 ? 2002 2003 2004 2005 2006 2007
+ 2100 ? 2102 2103 2104 2105 2106 2107
+ 2200 ? 2202 2203 2204 2205 2206 2207
`)), "-")
var sErr SyntaxError
@@ -221,16 +181,14 @@ func TestParserBadToken(t *testing.T) {
func TestParserShortRow(t *testing.T) {
_, err := Parse(bytes.NewBuffer([]byte(`
- BEGIN 2020
- BEGIN CIRC
- 1.000 1001 1002 1003 1004 1005 1006 1007
- 2000 ? 2002 2003 2004 2005 2006 2007
- BEGIN BU
- 1.100 1101 1102 1103 1104 1105 1106 1107
- 2100 ? 2102 2103 2104 2105 2106
- BEGIN PROOF
- 1.200 1201 1202 1203 1204 1205 1206 1207
- 2200 ? 2202 2203 2204 2205 2206 2207
+ 2020
+ 1.000 1001 1002 1003 1004 1005 1006 1007
+ 1.100 1101 1102 1103 1104 1105 1106 1107
+ 1.200 1201 1202 1203 1204 1205 1206 1207
+ 2021
+ 2000 ? 2002 2003 2004 2005 2006 2007
+ 2100 ? 2102 2103 2104 2105 2106
+ 2200 ? 2202 2203 2204 2205 2206 2207
`)), "-")
var sErr SyntaxError
@@ -241,16 +199,14 @@ func TestParserShortRow(t *testing.T) {
func TestParserLongRow(t *testing.T) {
_, err := Parse(bytes.NewBuffer([]byte(`
- BEGIN 2020
- BEGIN CIRC
- 1.000 1001 1002 1003 1004 1005 1006 1007
- 2000 ? 2002 2003 2004 2005 2006 2007
- BEGIN BU
- 1.100 1101 1102 1103 1104 1105 1106 1107
- 2100 ? 2102 2103 2104 2105 2106 2107 2108
- BEGIN PROOF
- 1.200 1201 1202 1203 1204 1205 1206 1207
- 2200 ? 2202 2203 2204 2205 2206 2207
+ 2020
+ 1.000 1001 1002 1003 1004 1005 1006 1007
+ 1.100 1101 1102 1103 1104 1105 1106 1107
+ 1.200 1201 1202 1203 1204 1205 1206 1207
+ 2021
+ 2000 ? 2002 2003 2004 2005 2006 2007
+ 2100 ? 2102 2103 2104 2105 2106 2107 2108
+ 2200 ? 2202 2203 2204 2205 2206 2207
`)), "-")
var sErr SyntaxError
@@ -259,18 +215,15 @@ func TestParserLongRow(t *testing.T) {
}
}
-func TestParserBadCoinType(t *testing.T) {
+func TestParserMissingRow(t *testing.T) {
_, err := Parse(bytes.NewBuffer([]byte(`
- BEGIN 2020
- BEGIN CIRCULATED
- 1.000 1001 1002 1003 1004 1005 1006 1007
- 2000 ? 2002 2003 2004 2005 2006 2007
- BEGIN BU
- 1.100 1101 1102 1103 1104 1105 1106 1107
- 2100 ? 2102 2103 2104 2105 2106 2107
- BEGIN PROOF
- 1.200 1201 1202 1203 1204 1205 1206 1207
- 2200 ? 2202 2203 2204 2205 2206 2207
+ 2020
+ 1.000 1001 1002 1003 1004 1005 1006 1007
+ 1.100 1101 1102 1103 1104 1105 1106 1107
+ 1.200 1201 1202 1203 1204 1205 1206 1207
+ 2021
+ 2000 ? 2002 2003 2004 2005 2006 2007
+ 2200 ? 2202 2203 2204 2205 2206 2207
`)), "-")
var sErr SyntaxError