79 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package goutils
 | |
| 
 | |
| import (
 | |
| 	"fmt"
 | |
| 	"math/rand"
 | |
| 	"testing"
 | |
| )
 | |
| 
 | |
| // ****************************** TESTS ********************************************
 | |
| 
 | |
| func TestRandomSeed(t *testing.T) {
 | |
| 
 | |
| 	// count, start, end, letters, numbers := 5, 0, 0, true, true
 | |
| 	random := rand.New(rand.NewSource(10))
 | |
| 	out := "3ip9v"
 | |
| 
 | |
| 	// Test 1: Simulating RandomAlphaNumeric(count int)
 | |
| 	if x, _ := RandomSeed(5, 0, 0, true, true, nil, random); x != out {
 | |
| 		t.Errorf("RandomSeed(%v, %v, %v, %v, %v, %v, %v) = %v, want %v", 5, 0, 0, true, true, nil, random, x, out)
 | |
| 	}
 | |
| 
 | |
| 	// Test 2: Simulating RandomAlphabetic(count int)
 | |
| 	out = "MBrbj"
 | |
| 
 | |
| 	if x, _ := RandomSeed(5, 0, 0, true, false, nil, random); x != out {
 | |
| 		t.Errorf("RandomSeed(%v, %v, %v, %v, %v, %v, %v) = %v, want %v", 5, 0, 0, true, false, nil, random, x, out)
 | |
| 	}
 | |
| 
 | |
| 	// Test 3: Simulating RandomNumeric(count int)
 | |
| 	out = "88935"
 | |
| 
 | |
| 	if x, _ := RandomSeed(5, 0, 0, false, true, nil, random); x != out {
 | |
| 		t.Errorf("RandomSeed(%v, %v, %v, %v, %v, %v, %v) = %v, want %v", 5, 0, 0, false, true, nil, random, x, out)
 | |
| 	}
 | |
| 
 | |
| 	// Test 4: Simulating RandomAscii(count int)
 | |
| 	out = "H_I;E"
 | |
| 
 | |
| 	if x, _ := RandomSeed(5, 32, 127, false, false, nil, random); x != out {
 | |
| 		t.Errorf("RandomSeed(%v, %v, %v, %v, %v, %v, %v) = %v, want %v", 5, 32, 127, false, false, nil, random, x, out)
 | |
| 	}
 | |
| 
 | |
| 	// Test 5: Simulating RandomSeed(...) with custom chars
 | |
| 	chars := []rune{'1', '2', '3', 'a', 'b', 'c'}
 | |
| 	out = "2b2ca"
 | |
| 
 | |
| 	if x, _ := RandomSeed(5, 0, 0, false, false, chars, random); x != out {
 | |
| 		t.Errorf("RandomSeed(%v, %v, %v, %v, %v, %v, %v) = %v, want %v", 5, 0, 0, false, false, chars, random, x, out)
 | |
| 	}
 | |
| 
 | |
| }
 | |
| 
 | |
| // ****************************** EXAMPLES ********************************************
 | |
| 
 | |
| func ExampleRandomSeed() {
 | |
| 
 | |
| 	var seed int64 = 10 // If you change this seed #, the random sequence below will change
 | |
| 	random := rand.New(rand.NewSource(seed))
 | |
| 	chars := []rune{'1', '2', '3', 'a', 'b', 'c'}
 | |
| 
 | |
| 	rand1, _ := RandomSeed(5, 0, 0, true, true, nil, random)      // RandomAlphaNumeric (Alphabets and numbers possible)
 | |
| 	rand2, _ := RandomSeed(5, 0, 0, true, false, nil, random)     // RandomAlphabetic (Only alphabets)
 | |
| 	rand3, _ := RandomSeed(5, 0, 0, false, true, nil, random)     // RandomNumeric (Only numbers)
 | |
| 	rand4, _ := RandomSeed(5, 32, 127, false, false, nil, random) // RandomAscii (Alphabets, numbers, and other ASCII chars)
 | |
| 	rand5, _ := RandomSeed(5, 0, 0, true, true, chars, random)    // RandomSeed with custom characters
 | |
| 
 | |
| 	fmt.Println(rand1)
 | |
| 	fmt.Println(rand2)
 | |
| 	fmt.Println(rand3)
 | |
| 	fmt.Println(rand4)
 | |
| 	fmt.Println(rand5)
 | |
| 	// Output:
 | |
| 	// 3ip9v
 | |
| 	// MBrbj
 | |
| 	// 88935
 | |
| 	// H_I;E
 | |
| 	// 2b2ca
 | |
| }
 |