From d43d5c0756ec210ebab75b80618ac5f5d1c26c66 Mon Sep 17 00:00:00 2001 From: mukhibillah Date: Fri, 10 Sep 2021 16:45:20 +0700 Subject: [PATCH 1/2] fix logic --- .vscode/launch.json | 7 +++++++ go.mod | 3 +++ main.go | 2 +- main_test.go | 2 +- 4 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 .vscode/launch.json create mode 100644 go.mod diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..9306042 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,7 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "1.15.0", + "configurations": [] +} \ No newline at end of file diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..c19184b --- /dev/null +++ b/go.mod @@ -0,0 +1,3 @@ +module github.com/debugging-workshop + +go 1.14 diff --git a/main.go b/main.go index b37c814..8cdbfc6 100644 --- a/main.go +++ b/main.go @@ -95,7 +95,7 @@ func evaluateSignal(signal []int) string { func evaluateNode(node1, node2 int) int { switch { - case node2 > node1: + case node2 >= node1: return 1 case node2 < node1: return 0 diff --git a/main_test.go b/main_test.go index 95db6fe..3639138 100644 --- a/main_test.go +++ b/main_test.go @@ -17,7 +17,7 @@ func Test_validateSignal(t *testing.T) { { name: "good signal", args: args{ - signal: []int{1, 0, 1, 0, 0, 1}, + signal: []int{0, 1, 1, 0, 1, 1}, }, want: "good", }, From ece079bd7952408742b8549591799348e1a02c10 Mon Sep 17 00:00:00 2001 From: mukhibillah Date: Fri, 10 Sep 2021 16:58:51 +0700 Subject: [PATCH 2/2] change evaluateNode logic --- main.go | 16 +++++++++++++--- main_test.go | 4 ++-- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/main.go b/main.go index 8cdbfc6..712801b 100644 --- a/main.go +++ b/main.go @@ -82,10 +82,16 @@ func evaluateSignal(signal []int) string { } else if i == maxDigit-1 { break } else { - result = evaluateNode(result, signal[i+1]) + result = evaluateNode(signal[i], signal[i+1]) } } + // if signal[maxDigit-1] == 1 && result != 1 { + // return fmt.Sprintf("someting's wrong good %d", result) + // } else if signal[maxDigit-1] == 0 && result != 0 { + // return fmt.Sprintf("someting's wrong bad %d", result) + // } + if result == 1 { return "good" } else { @@ -95,9 +101,13 @@ func evaluateSignal(signal []int) string { func evaluateNode(node1, node2 int) int { switch { - case node2 >= node1: + // case node2 > node1: + // return 1 + // case node2 < node1: + // return 0 + case node2 == 1: return 1 - case node2 < node1: + case node2 == 0: return 0 default: return 0 diff --git a/main_test.go b/main_test.go index 3639138..b8146cc 100644 --- a/main_test.go +++ b/main_test.go @@ -17,9 +17,9 @@ func Test_validateSignal(t *testing.T) { { name: "good signal", args: args{ - signal: []int{0, 1, 1, 0, 1, 1}, + signal: []int{1, 1, 1, 1, 0, 0}, }, - want: "good", + want: "bad", }, { name: "bad signal",