github.com/vpayno/adventofcode-2022-golang-workspace@v0.0.0-20230605190011-dbafed5593de/internal/day03/init_test.go (about) 1 package day03 2 3 import ( 4 "fmt" 5 "testing" 6 7 "github.com/stretchr/testify/assert" 8 ) 9 10 func TestSetup(t *testing.T) { 11 appName := "testName" 12 13 want := Config{ 14 appName: appName, 15 inputFileName: "data/" + appName + "/" + appName + "-input.txt", 16 } 17 18 got := Setup(appName) 19 20 assert.Equal(t, want.appName, got.appName, "app names aren't equal") 21 assert.Equal(t, want.inputFileName, got.inputFileName, "input file names aren't equal") 22 } 23 24 func TestRucksack_getCollection(t *testing.T) { 25 r := rucksack{ 26 items: "vJrwpWtwJgWrhcsFMMfFFhFp", 27 } 28 29 want1 := "vJrwpWtwJgWr" 30 want2 := "hcsFMMfFFhFp" 31 32 got1 := r.getCollection(1) 33 got2 := r.getCollection(2) 34 35 assert.Equal(t, want1, got1) 36 assert.Equal(t, want2, got2) 37 } 38 39 func TestRucksack_getSharedItem(t *testing.T) { 40 r := rucksack{ 41 items: "vJrwpWtwJgWrhcsFMMfFFhFp", 42 } 43 44 want := 'p' 45 got, err := r.getSharedItem() 46 47 assert.Nil(t, err) 48 msg := fmt.Errorf("want char [%c], got char [%c]", want, got) 49 assert.Equal(t, want, got, msg) 50 } 51 52 func TestRucksack_getSharedItem_error(t *testing.T) { 53 // even, no shared item 54 r := rucksack{ 55 items: "abcdefgh", 56 } 57 58 _, err := r.getSharedItem() 59 60 assert.NotNil(t, err) 61 } 62 63 func TestRucksack_getSharedPriority(t *testing.T) { 64 r := rucksack{ 65 items: "vJrwpWtwJgWrhcsFMMfFFhFp", 66 } 67 68 want := 16 69 got, err := r.getSharedPriority() 70 71 assert.Nil(t, err) 72 assert.Equal(t, want, got) 73 } 74 75 func TestRucksack_getSharedPriority_error(t *testing.T) { 76 // odd length string 77 r := rucksack{ 78 items: "abcdefgh", 79 } 80 81 _, err := r.getSharedPriority() 82 83 assert.NotNil(t, err) 84 } 85 86 func TestRucksack_addItems(t *testing.T) { 87 want := rucksack{ 88 items: "vJrwpWtwJgWrhcsFMMfFFhFp", 89 } 90 91 got := new(rucksack) 92 gotErr := got.addItems("vJrwpWtwJgWrhcsFMMfFFhFp") 93 94 assert.Nil(t, gotErr, "there was an error adding the items to the rucksack") 95 assert.Equal(t, want.items, got.items) 96 } 97 98 func TestGetPriority(t *testing.T) { 99 char := 'a' 100 want := 1 101 got := getPriority(char) 102 assert.Equal(t, want, got, "wrong priority, "+", for item "+string(char)) 103 104 char = 'z' 105 want = 26 106 got = getPriority(char) 107 assert.Equal(t, want, got, "wrong priority, "+", for item "+string(char)) 108 109 char = 'A' 110 want = 27 111 got = getPriority(char) 112 assert.Equal(t, want, got, "wrong priority, "+", for item "+string(char)) 113 114 char = 'Z' 115 want = 52 116 got = getPriority(char) 117 assert.Equal(t, want, got, "wrong priority, "+", for item "+string(char)) 118 }