73 lines
1.5 KiB
Go
73 lines
1.5 KiB
Go
package fourteen
|
|
|
|
import "testing"
|
|
|
|
func Test_read(t *testing.T) {
|
|
p := polymer{}
|
|
if err := p.load("test_input.txt"); err != nil {
|
|
t.Log(err)
|
|
t.FailNow()
|
|
}
|
|
|
|
if p.template != "NNCB" {
|
|
t.Logf("Expected template of NNCB, found %s", p.template)
|
|
t.Fail()
|
|
}
|
|
|
|
if len(p.rules) != 16 {
|
|
t.Logf("Expected 16 rules, found %d", len(p.rules))
|
|
t.Fail()
|
|
}
|
|
}
|
|
|
|
func Test_step(t *testing.T) {
|
|
p := polymer{}
|
|
p.load("test_input.txt")
|
|
|
|
if result := p.step(1); result != "NCNBCHB" {
|
|
t.Logf("Expected NCNBCHB, found %s", result)
|
|
t.Fail()
|
|
}
|
|
|
|
if result := p.step(2); result != "NBCCNBBBCBHCB" {
|
|
t.Logf("Expected NBCCNBBBCBHCB, found %s", result)
|
|
t.Fail()
|
|
}
|
|
|
|
if result := p.step(3); result != "NBBBCNCCNBBNBNBBCHBHHBCHB" {
|
|
t.Logf("Expected NBBBCNCCNBBNBNBBCHBHHBCHB, found %s", result)
|
|
t.Fail()
|
|
}
|
|
|
|
if result := p.step(4); result != "NBBNBNBBCCNBCNCCNBBNBBNBBBNBBNBBCBHCBHHNHCBBCBHCB" {
|
|
t.Logf("Expected NBBNBNBBCCNBCNCCNBBNBBNBBBNBBNBBCBHCBHHNHCBBCBHCB, found %s", result)
|
|
t.Fail()
|
|
}
|
|
|
|
}
|
|
|
|
func Test_elemCount(t *testing.T) {
|
|
p := polymer{}
|
|
p.load("test_input.txt")
|
|
|
|
if result := p.elementCount(10); result != 1588 {
|
|
t.Logf("Expected a result of 1588, got %d", result)
|
|
t.Fail()
|
|
}
|
|
}
|
|
|
|
func Test_elemMapCount(t *testing.T) {
|
|
p := polymer{}
|
|
p.load("test_input.txt")
|
|
|
|
if result := p.elementCountMap(10); result != 1588 {
|
|
t.Logf("Expected a result of 1588, got %d", result)
|
|
t.Fail()
|
|
}
|
|
|
|
if result := p.elementCountMap(40); result != 2188189693529 {
|
|
t.Logf("Expected a result of 2188189693529, got %d", result)
|
|
t.Fail()
|
|
}
|
|
}
|