<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: radlinskii</title>
    <description>The latest articles on Forem by radlinskii (@radlinskii).</description>
    <link>https://forem.com/radlinskii</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F99474%2Fe22fc553-fad7-458c-82f8-af86706e4580.jpeg</url>
      <title>Forem: radlinskii</title>
      <link>https://forem.com/radlinskii</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/radlinskii"/>
    <language>en</language>
    <item>
      <title>Shell command for cleaning up git repositories from unused branches</title>
      <dc:creator>radlinskii</dc:creator>
      <pubDate>Fri, 04 Feb 2022 12:06:23 +0000</pubDate>
      <link>https://forem.com/radlinskii/shell-command-for-cleaning-up-git-repositories-from-unused-branches-pj6</link>
      <guid>https://forem.com/radlinskii/shell-command-for-cleaning-up-git-repositories-from-unused-branches-pj6</guid>
      <description>&lt;p&gt;Hello, &lt;br&gt;
In this short post I'd like to share with you a simple solution to the issue I'm encountering from time to time. The problem is that each of repositories I'm actively working on is aggregating a lot of branches, because in my workflow, I'm creating a new branch for each new task I'm working with. After merging branch to &lt;code&gt;main&lt;/code&gt;, I want to keep the branch for a while just-in-case, but then, as one would expect, I forget to delete it. So after some time, when I run &lt;code&gt;git branch&lt;/code&gt; I am getting more and more results. Actually, I've decided to do something about it when I saw that I have 61 local branches in one of my local repos.&lt;/p&gt;

&lt;p&gt;The solution that came to my mind was to right a shell function and add it to my &lt;code&gt;~/.zshrc&lt;/code&gt; that would work as command that can remove all of the unused local branches automatically.&lt;/p&gt;

&lt;p&gt;I've decided that this command should work in the opposite  way to &lt;code&gt;git branch --delete&lt;/code&gt; where you provide a list of branch names you want to delete. So instead, I want to provide the list of branches I want to keep.&lt;/p&gt;

&lt;p&gt;After a thought that I'd need to add branch &lt;code&gt;main&lt;/code&gt; or &lt;code&gt;master&lt;/code&gt; each time I'd run this command, I've decided to always add them to the list of branch names that should not be deleted.&lt;/p&gt;

&lt;p&gt;Another improvement I've decided to add was to always keep the current branch. Just in case I've decided to clean up all the branches but forgot that I'm already not on the &lt;code&gt;main&lt;/code&gt; branch.&lt;/p&gt;

&lt;p&gt;In my case, I've added it to a file called &lt;code&gt;~/.custom_aliases&lt;/code&gt; that I keep developing for improving productivity and is "imported" inside my &lt;code&gt;~/.zshrc&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Here's the code for it:&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;So if you ran &lt;code&gt;git branch&lt;/code&gt; and see something like 👇:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4il39p9zf1g13x07asbw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4il39p9zf1g13x07asbw.png" alt="long list of branches"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;and then you run 👇:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgkbexx7d6innqrov1jz7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgkbexx7d6innqrov1jz7.png" alt="run  raw `git_branch_delete_all_but rewrite-everything-to-rust` endraw  "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You will end up with clean repo with just the &lt;code&gt;main&lt;/code&gt; branch, &lt;em&gt;current&lt;/em&gt; branch, and the branches you explicitly provided not being deleted:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsha2zmsyadxjdm1j8y94.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsha2zmsyadxjdm1j8y94.png" alt="list of branches with just main, rewrite-everything-to-rust and current branch"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And all that with just a single command. :not_bad:&lt;/p&gt;

&lt;p&gt;That's it from me, thanks for reading. I encourage you to leave a like/comment here or star/comment on &lt;a href="https://gist.github.com/radlinskii/76a648fac7d02bc48b3f09f1c3468bd3" rel="noopener noreferrer"&gt;github&lt;/a&gt;. See you! 👋&lt;/p&gt;

</description>
      <category>git</category>
      <category>shell</category>
      <category>script</category>
      <category>bash</category>
    </item>
    <item>
      <title>Git Hooks in action</title>
      <dc:creator>radlinskii</dc:creator>
      <pubDate>Sun, 27 Jan 2019 18:02:30 +0000</pubDate>
      <link>https://forem.com/radlinskii/git-hooks-in-action-2ii5</link>
      <guid>https://forem.com/radlinskii/git-hooks-in-action-2ii5</guid>
      <description>&lt;p&gt;Hi all,&lt;/p&gt;

&lt;p&gt;I wanted to share with you an article about writing git hooks I wrote on medium some time ago.&lt;/p&gt;

&lt;p&gt;Here's the link --&amp;gt; &lt;a href="https://medium.com/@radlinskii/writing-the-pre-commit-git-hook-for-go-files-810f8d5f1c6f"&gt;https://medium.com/@radlinskii/writing-the-pre-commit-git-hook-for-go-files&lt;/a&gt;&lt;/p&gt;

</description>
      <category>bash</category>
      <category>git</category>
      <category>github</category>
      <category>go</category>
    </item>
    <item>
      <title>Happy Hacktoberfest 2018!</title>
      <dc:creator>radlinskii</dc:creator>
      <pubDate>Sun, 30 Sep 2018 18:15:36 +0000</pubDate>
      <link>https://forem.com/radlinskii/happy-hacktoberfest-2018-jo1</link>
      <guid>https://forem.com/radlinskii/happy-hacktoberfest-2018-jo1</guid>
      <description>&lt;p&gt;Hello everyone,&lt;/p&gt;

&lt;p&gt;as &lt;a href="https://hacktoberfest.digitalocean.com/"&gt;Hacktoberfest 2018&lt;/a&gt; is about to get started, I wanted to share with you my side project. I've created a web app called &lt;a href="https://octo-board.herokuapp.com/"&gt;OctoBoard&lt;/a&gt;, that can help us find open GitHub issues during the Hacktoberfest. Using its filters we can easily find issues with specific labels (e.g. "hacktoberfest"), language and organization. We can also filter out issues that got assigned to someone or are already commented.&lt;br&gt;
It's really easy to work with so I encourage you to give it a try.&lt;/p&gt;

&lt;p&gt;Here is the &lt;a href="https://octo-board.herokuapp.com/"&gt;deployed app&lt;/a&gt;, and here is its &lt;a href="https://github.com/radlinskii/octo-board"&gt;repository&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Happy Coding!&lt;/p&gt;

</description>
      <category>hacktoberfest</category>
      <category>github</category>
      <category>beginners</category>
      <category>go</category>
    </item>
    <item>
      <title>Writing a pre-commit git hook for Go files.</title>
      <dc:creator>radlinskii</dc:creator>
      <pubDate>Thu, 27 Sep 2018 16:42:05 +0000</pubDate>
      <link>https://forem.com/radlinskii/writing-the-pre-commit-git-hook-for-go-files-2jd</link>
      <guid>https://forem.com/radlinskii/writing-the-pre-commit-git-hook-for-go-files-2jd</guid>
      <description>&lt;p&gt;Hello,&lt;/p&gt;

&lt;p&gt;I've just published an article on medium, on how to write a pre-commit git hook for files written in the Go programming language.&lt;/p&gt;

&lt;p&gt;Click &lt;a href="https://medium.com/@radlinskii/writing-the-pre-commit-git-hook-for-go-files-810f8d5f1c6f"&gt;here&lt;/a&gt; to read it.&lt;/p&gt;

&lt;p&gt;Thanks.&lt;/p&gt;

</description>
      <category>git</category>
      <category>go</category>
      <category>beginners</category>
      <category>shell</category>
    </item>
    <item>
      <title>How to test methods in Go</title>
      <dc:creator>radlinskii</dc:creator>
      <pubDate>Tue, 11 Sep 2018 21:31:31 +0000</pubDate>
      <link>https://forem.com/radlinskii/how-to-test-methods-in-go-4n8b</link>
      <guid>https://forem.com/radlinskii/how-to-test-methods-in-go-4n8b</guid>
      <description>&lt;p&gt;Hello, last week I've started learning Golang. Following the &lt;a href="https://tour.golang.org/methods/20" rel="noopener noreferrer"&gt;Tour of Go&lt;/a&gt; I've implemented a function to calculate square root of a given float64 number.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight go"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="s"&gt;"fmt"&lt;/span&gt;

&lt;span class="k"&gt;type&lt;/span&gt; &lt;span class="n"&gt;ErrNegativeSqrt&lt;/span&gt; &lt;span class="kt"&gt;float64&lt;/span&gt;

&lt;span class="k"&gt;func&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt; &lt;span class="n"&gt;ErrNegativeSqrt&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;Error&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;fmt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Sprintf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"cannot Sqrt negative number: %g&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;float64&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c"&gt;// Sqrt calculates the square root of a number.&lt;/span&gt;
&lt;span class="c"&gt;// If given negative number it returns an error.&lt;/span&gt;
&lt;span class="k"&gt;func&lt;/span&gt; &lt;span class="n"&gt;Sqrt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="kt"&gt;float64&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;float64&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;error&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ErrNegativeSqrt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;z&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="kt"&gt;float64&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="m"&gt;100&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="n"&gt;z&lt;/span&gt; &lt;span class="o"&gt;-=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;z&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;z&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;z&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;z&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="no"&gt;nil&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;To test if it's working as expected I've wrote this test:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight go"&gt;&lt;code&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="s"&gt;"math"&lt;/span&gt;
    &lt;span class="s"&gt;"testing"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;func&lt;/span&gt; &lt;span class="n"&gt;TestSqrt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;testing&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;T&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;var&lt;/span&gt; &lt;span class="n"&gt;tests&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;map&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="kt"&gt;float64&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="kt"&gt;float64&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="m"&gt;3&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;  &lt;span class="n"&gt;math&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Sqrt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;3&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
        &lt;span class="m"&gt;2&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;  &lt;span class="n"&gt;math&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Sqrt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
        &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;  &lt;span class="n"&gt;math&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Sqrt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
        &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;  &lt;span class="n"&gt;math&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Sqrt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
        &lt;span class="m"&gt;4&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;  &lt;span class="n"&gt;math&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Sqrt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;4&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
        &lt;span class="m"&gt;5&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;  &lt;span class="n"&gt;math&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Sqrt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;5&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
        &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="m"&gt;5&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="n"&gt;precision&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="m"&gt;0.00000001&lt;/span&gt;

    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;expectedVal&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="k"&gt;range&lt;/span&gt; &lt;span class="n"&gt;tests&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;val&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="n"&gt;Sqrt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;val&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;expectedVal&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;precision&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="n"&gt;val&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;expectedVal&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;precision&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
                &lt;span class="s"&gt;"For"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="s"&gt;"expected"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;expectedVal&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="s"&gt;"got"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;val&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;My question is &lt;em&gt;How do I write a test for the &lt;code&gt;Error&lt;/code&gt; method of &lt;code&gt;ErrNegativeSqrt&lt;/code&gt; type&lt;/em&gt; which I wrote so that &lt;code&gt;ErrNegativeSqrt&lt;/code&gt; can implement the &lt;code&gt;error&lt;/code&gt; interface?&lt;/p&gt;

&lt;p&gt;Thanks in advance. ❤️&lt;/p&gt;
&lt;h3&gt;
  
  
  PS. This is my first dev.to post! 🙌
&lt;/h3&gt;

&lt;p&gt;PPS. Feel free to checkout my repo &lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/radlinskii" rel="noopener noreferrer"&gt;
        radlinskii
      &lt;/a&gt; / &lt;a href="https://github.com/radlinskii/go-playground" rel="noopener noreferrer"&gt;
        go-playground
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Repository created to have fun with Golang.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;go-playground&lt;/h1&gt;

&lt;/div&gt;

&lt;p&gt;&lt;a href="https://travis-ci.com/radlinskii/go-playground" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/55f759c52759952b518e2bbd1b14eb6f96dc0d4d61d67e5a70b466c264ea9053/68747470733a2f2f7472617669732d63692e636f6d2f7261646c696e736b69692f676f2d706c617967726f756e642e7376673f6272616e63683d6d6173746572" alt="Build Status"&gt;&lt;/a&gt;
&lt;a href="https://godoc.org/github.com/radlinskii/go-playground" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/1f5cd0899025bd77f29ac0dafac9bd1c8b4a37a517c01fb86c7c227714d0decb/68747470733a2f2f676f646f632e6f72672f6769746875622e636f6d2f7261646c696e736b69692f676f2d706c617967726f756e643f7374617475732e737667" alt="GoDoc"&gt;&lt;/a&gt;
&lt;a href="https://goreportcard.com/report/github.com/radlinskii/go-playground" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/bd6633b7845995bf64fce9f25b742eeba6c6c9e2d0f494aab8e4236077037982/68747470733a2f2f676f7265706f7274636172642e636f6d2f62616467652f6769746875622e636f6d2f7261646c696e736b69692f676f2d706c617967726f756e64" alt="Go Report Card"&gt;&lt;/a&gt;
&lt;a href="https://github.com/jpoles1/gopherbadger" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/09d45b9705c1ec7bf4ac6c0555ed5573ce1ecbde25dfff85954a2a51089065c7/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f476f253230436f7665726167652d39392532352d627269676874677265656e2e7376673f6c6f6e6743616368653d74727565267374796c653d666c6174" alt="gopherbadger-tag-do-not-edit"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Repository created to have fun with Golang.&lt;/p&gt;
&lt;/div&gt;



&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/radlinskii/go-playground" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


</description>
      <category>go</category>
      <category>beginners</category>
      <category>help</category>
    </item>
  </channel>
</rss>
