summaryrefslogtreecommitdiffhomepage
path: root/cmd/mfmt/main_test.go
blob: 72e3665b886bbfea0fdccd90fe71a648270526da (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
package main

import (
	"bytes"
	"testing"
)

func runTest(t *testing.T, in, out string, nilErr bool) {
	r := bytes.NewReader([]byte(in))
	w := new(bytes.Buffer)

	err := mfmt("-", r, w)
	if nilErr && err != nil {
		t.Fatalf(`Expected err=nil; got "%s"`, err)
	} else if !nilErr && err == nil {
		t.Fatalf(`Expected err=Error; got nil`)
	}

	if nilErr && w.String() != out {
		t.Fatalf(`Expected w.String()="%s"; got "%s"`, out, w.String())
	}
}

func TestSpacing(t *testing.T) {
	in := `
		BEGIN   2002
   BEGIN         CIRC


378.383.000         326.439.000   217.031.000 441.621.000     203.388.000		169.088.000 223.544.000 196.438.000


	 10.817.950 118.526.000           ?  43.859.072  50.913.200   9.074.200     150.000		4.679.500
`
	out := `BEGIN 2002

BEGIN CIRC
378.383.000 326.439.000 217.031.000 441.621.000 203.388.000 169.088.000 223.544.000 196.438.000
 10.817.950 118.526.000           ?  43.859.072  50.913.200   9.074.200     150.000   4.679.500
`
	runTest(t, in, out, true)
}

func TestAddDots(t *testing.T) {
	in := `BEGIN 2002

BEGIN CIRC
378383000 326439000 217031000 441621000 203388000 169088000 223544000 196438000
 10817950 118526000         ?  43859072  50913200   9074200    150000   4679500
`
	out := `BEGIN 2002

BEGIN CIRC
378.383.000 326.439.000 217.031.000 441.621.000 203.388.000 169.088.000 223.544.000 196.438.000
 10.817.950 118.526.000           ?  43.859.072  50.913.200   9.074.200     150.000   4.679.500
`
	runTest(t, in, out, true)
}

func TestComplete(t *testing.T) {
	in := `
		BEGIN   2002
   BEGIN         CIRC


378383000         326439000   21703...1000 441621000     203388000		.1.6.9.0.8.8.0.0.0 223544000 196438000


	 10817950 118526000           ?  43859072  50913200   9074..200     150000		4679500

   BEGIN         PROOF


378383000         123456789   ..5 441621000     203388000		.1.6.9.0.8.8.0.0.0 223544000 196438000


	 10817950 118526000           ?  43859072  50913200   9074..200     150000		4679500
`
	out := `BEGIN 2002

BEGIN CIRC
378.383.000 326.439.000 217.031.000 441.621.000 203.388.000 169.088.000 223.544.000 196.438.000
 10.817.950 118.526.000           ?  43.859.072  50.913.200   9.074.200     150.000   4.679.500

BEGIN PROOF
378.383.000 123.456.789 5 441.621.000 203.388.000 169.088.000 223.544.000 196.438.000
 10.817.950 118.526.000 ?  43.859.072  50.913.200   9.074.200     150.000   4.679.500
`
	runTest(t, in, out, true)
}

func TestLabelAlignment(t *testing.T) {
	in := `BEGIN 2002

BEGIN CIRC
378383000 326439000 217031000 441621000 203388000 169088000 223544000 196438000
KNM*: 10817950 118526000         ?  43859072  50913200   9074200    150000   4679500
MdP:		115.000.000 156.400.000  89.300.000   5.200.000  54.800.000   3.100.000   2.600.000   2.500.000
`
	out := `BEGIN 2002

BEGIN CIRC
      378.383.000 326.439.000 217.031.000 441.621.000 203.388.000 169.088.000 223.544.000 196.438.000
KNM*:  10.817.950 118.526.000           ?  43.859.072  50.913.200   9.074.200     150.000   4.679.500
MdP:  115.000.000 156.400.000  89.300.000   5.200.000  54.800.000   3.100.000   2.600.000   2.500.000
`
	runTest(t, in, out, true)
}