Browse Source

Move useful code again

content-update
Xavier Petit 4 years ago committed by xpetit
parent
commit
3569fc1bf6
  1. 10
      go/lib/is/is.go
  2. 14
      go/tests/any/main.go
  3. 14
      go/tests/countif/main.go
  4. 4
      go/tests/findnextprime/main.go
  5. 4
      go/tests/findprevprime/main.go
  6. 4
      go/tests/islower/main.go
  7. 4
      go/tests/isnumeric/main.go
  8. 4
      go/tests/isprime/main.go
  9. 4
      go/tests/isupper/main.go
  10. 6
      go/tests/map/main.go

10
go/lib/is/is.go

@ -1,11 +1,11 @@
package common package is
import ( import (
"math/big" "math/big"
"unicode" "unicode"
) )
func IsDigit(s string) bool { func Digit(s string) bool {
for _, r := range s { for _, r := range s {
if !unicode.IsDigit(r) { if !unicode.IsDigit(r) {
return false return false
@ -14,7 +14,7 @@ func IsDigit(s string) bool {
return true return true
} }
func IsLower(s string) bool { func Lower(s string) bool {
for _, r := range s { for _, r := range s {
if !unicode.IsLower(r) { if !unicode.IsLower(r) {
return false return false
@ -23,7 +23,7 @@ func IsLower(s string) bool {
return true return true
} }
func IsUpper(s string) bool { func Upper(s string) bool {
for _, r := range s { for _, r := range s {
if !(r >= 'A' && r <= 'Z') { if !(r >= 'A' && r <= 'Z') {
return false return false
@ -32,6 +32,6 @@ func IsUpper(s string) bool {
return true return true
} }
func IsPrime(i int) bool { func Prime(i int) bool {
return big.NewInt(int64(i)).ProbablyPrime(0) return big.NewInt(int64(i)).ProbablyPrime(0)
} }

14
go/tests/any/main.go

@ -1,9 +1,9 @@
package main package main
import ( import (
"../common"
"./student" "./student"
"github.com/01-edu/public/go/lib" "github.com/01-edu/public/go/lib"
"github.com/01-edu/public/go/lib/is"
) )
func any(f func(string) bool, arr []string) bool { func any(f func(string) bool, arr []string) bool {
@ -17,7 +17,7 @@ func any(f func(string) bool, arr []string) bool {
} }
func main() { func main() {
functions := []func(string) bool{common.IsDigit, common.IsLower, common.IsUpper} functions := []func(string) bool{is.Digit, is.Lower, is.Upper}
type node struct { type node struct {
f func(string) bool f func(string) bool
@ -35,31 +35,31 @@ func main() {
} }
for i := 0; i < 5; i++ { for i := 0; i < 5; i++ {
table = append(table, node{ table = append(table, node{
f: common.IsDigit, f: is.Digit,
a: lib.MultRandDigit(), a: lib.MultRandDigit(),
}) })
} }
for i := 0; i < 5; i++ { for i := 0; i < 5; i++ {
table = append(table, node{ table = append(table, node{
f: common.IsLower, f: is.Lower,
a: lib.MultRandLower(), a: lib.MultRandLower(),
}) })
} }
for i := 0; i < 5; i++ { for i := 0; i < 5; i++ {
table = append(table, node{ table = append(table, node{
f: common.IsUpper, f: is.Upper,
a: lib.MultRandUpper(), a: lib.MultRandUpper(),
}) })
} }
table = append(table, table = append(table,
node{ node{
f: common.IsDigit, f: is.Digit,
a: []string{"Hello", "how", "are", "you"}, a: []string{"Hello", "how", "are", "you"},
}, },
node{ node{
f: common.IsDigit, f: is.Digit,
a: []string{"This", "is", "4", "you"}, a: []string{"This", "is", "4", "you"},
}, },
) )

14
go/tests/countif/main.go

@ -1,9 +1,9 @@
package main package main
import ( import (
"../common"
"./student" "./student"
"github.com/01-edu/public/go/lib" "github.com/01-edu/public/go/lib"
"github.com/01-edu/public/go/lib/is"
) )
func countIf(f func(string) bool, arr []string) int { func countIf(f func(string) bool, arr []string) int {
@ -18,7 +18,7 @@ func countIf(f func(string) bool, arr []string) int {
} }
func main() { func main() {
functions := []func(string) bool{common.IsDigit, common.IsLower, common.IsUpper} functions := []func(string) bool{is.Digit, is.Lower, is.Upper}
type node struct { type node struct {
f func(string) bool f func(string) bool
@ -37,7 +37,7 @@ func main() {
} }
for i := 0; i < 5; i++ { for i := 0; i < 5; i++ {
val := node{ val := node{
f: common.IsDigit, f: is.Digit,
arr: lib.MultRandDigit(), arr: lib.MultRandDigit(),
} }
table = append(table, val) table = append(table, val)
@ -45,14 +45,14 @@ func main() {
for i := 0; i < 5; i++ { for i := 0; i < 5; i++ {
val := node{ val := node{
f: common.IsLower, f: is.Lower,
arr: lib.MultRandLower(), arr: lib.MultRandLower(),
} }
table = append(table, val) table = append(table, val)
} }
for i := 0; i < 5; i++ { for i := 0; i < 5; i++ {
val := node{ val := node{
f: common.IsUpper, f: is.Upper,
arr: lib.MultRandUpper(), arr: lib.MultRandUpper(),
} }
table = append(table, val) table = append(table, val)
@ -60,11 +60,11 @@ func main() {
table = append(table, table = append(table,
node{ node{
f: common.IsDigit, f: is.Digit,
arr: []string{"Hello", "how", "are", "you"}, arr: []string{"Hello", "how", "are", "you"},
}, },
node{ node{
f: common.IsDigit, f: is.Digit,
arr: []string{"This", "is", "4", "you"}, arr: []string{"This", "is", "4", "you"},
}, },
) )

4
go/tests/findnextprime/main.go

@ -1,13 +1,13 @@
package main package main
import ( import (
"../common"
"./student" "./student"
"github.com/01-edu/public/go/lib" "github.com/01-edu/public/go/lib"
"github.com/01-edu/public/go/lib/is"
) )
func findNextPrime(nb int) int { func findNextPrime(nb int) int {
if common.IsPrime(nb) { if is.Prime(nb) {
return nb return nb
} }
return findNextPrime(nb + 1) return findNextPrime(nb + 1)

4
go/tests/findprevprime/main.go

@ -1,16 +1,16 @@
package main package main
import ( import (
"../common"
"./student" "./student"
"github.com/01-edu/public/go/lib" "github.com/01-edu/public/go/lib"
"github.com/01-edu/public/go/lib/is"
) )
func findPrevPrime(nb int) int { func findPrevPrime(nb int) int {
if nb < 2 { if nb < 2 {
return 0 return 0
} }
if common.IsPrime(nb) { if is.Prime(nb) {
return nb return nb
} }
return findPrevPrime(nb - 1) return findPrevPrime(nb - 1)

4
go/tests/islower/main.go

@ -1,9 +1,9 @@
package main package main
import ( import (
"../common"
"./student" "./student"
"github.com/01-edu/public/go/lib" "github.com/01-edu/public/go/lib"
"github.com/01-edu/public/go/lib/is"
) )
func main() { func main() {
@ -39,6 +39,6 @@ func main() {
"hello!", "hello!",
) )
for _, arg := range table { for _, arg := range table {
lib.Challenge("IsLower", student.IsLower, common.IsLower, arg) lib.Challenge("IsLower", student.IsLower, is.Lower, arg)
} }
} }

4
go/tests/isnumeric/main.go

@ -3,9 +3,9 @@ package main
import ( import (
"strconv" "strconv"
"../common"
"./student" "./student"
"github.com/01-edu/public/go/lib" "github.com/01-edu/public/go/lib"
"github.com/01-edu/public/go/lib/is"
) )
func main() { func main() {
@ -33,6 +33,6 @@ func main() {
"01,02,03", "01,02,03",
) )
for _, arg := range table { for _, arg := range table {
lib.Challenge("IsNumeric", student.IsNumeric, common.IsDigit, arg) lib.Challenge("IsNumeric", student.IsNumeric, is.Digit, arg)
} }
} }

4
go/tests/isprime/main.go

@ -1,9 +1,9 @@
package main package main
import ( import (
"../common"
"./student" "./student"
"github.com/01-edu/public/go/lib" "github.com/01-edu/public/go/lib"
"github.com/01-edu/public/go/lib/is"
) )
func main() { func main() {
@ -27,6 +27,6 @@ func main() {
1000000087, 1000000087,
) )
for _, arg := range table { for _, arg := range table {
lib.Challenge("IsPrime", student.IsPrime, common.IsPrime, arg) lib.Challenge("IsPrime", student.IsPrime, is.Prime, arg)
} }
} }

4
go/tests/isupper/main.go

@ -1,9 +1,9 @@
package main package main
import ( import (
"../common"
"./student" "./student"
"github.com/01-edu/public/go/lib" "github.com/01-edu/public/go/lib"
"github.com/01-edu/public/go/lib/is"
) )
func main() { func main() {
@ -41,6 +41,6 @@ func main() {
"HELLO!", "HELLO!",
) )
for _, arg := range table { for _, arg := range table {
lib.Challenge("IsUpper", student.IsUpper, common.IsUpper, arg) lib.Challenge("IsUpper", student.IsUpper, is.Upper, arg)
} }
} }

6
go/tests/map/main.go

@ -1,9 +1,9 @@
package main package main
import ( import (
"../common"
"./student" "./student"
"github.com/01-edu/public/go/lib" "github.com/01-edu/public/go/lib"
"github.com/01-edu/public/go/lib/is"
) )
func isPositive(i int) bool { func isPositive(i int) bool {
@ -25,7 +25,7 @@ func _map(f func(int) bool, a []int) []bool {
} }
func main() { func main() {
functions := []func(int) bool{isPositive, isNegative0, common.IsPrime} functions := []func(int) bool{isPositive, isNegative0, is.Prime}
type node struct { type node struct {
f func(int) bool f func(int) bool
@ -44,7 +44,7 @@ func main() {
} }
table = append(table, node{ table = append(table, node{
f: common.IsPrime, f: is.Prime,
arr: []int{1, 2, 3, 4, 5, 6}, arr: []int{1, 2, 3, 4, 5, 6},
}) })

Loading…
Cancel
Save