polynomial_test.go 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. package sss
  2. import (
  3. "bytes"
  4. "testing"
  5. )
  6. var (
  7. p = []byte{1, 0, 2, 3}
  8. p2 = []byte{70, 32, 6}
  9. )
  10. func TestDegree(t *testing.T) {
  11. if v, want := degree(p), 3; v != want {
  12. t.Errorf("Was %v, but expected %v", v, want)
  13. }
  14. }
  15. func TestEval(t *testing.T) {
  16. if v, want := eval(p, 2), byte(17); v != want {
  17. t.Errorf("Was %v, but expected %v", v, want)
  18. }
  19. }
  20. func TestGenerate(t *testing.T) {
  21. b := []byte{1, 2, 3}
  22. expected := []byte{10, 1, 2, 3}
  23. actual, err := generate(3, 10, bytes.NewReader(b))
  24. if err != nil {
  25. t.Error(err)
  26. }
  27. if !bytes.Equal(actual, expected) {
  28. t.Errorf("Was %v, but expected %v", actual, expected)
  29. }
  30. }
  31. func TestGenerateEOF(t *testing.T) {
  32. b := []byte{1}
  33. p, err := generate(3, 10, bytes.NewReader(b))
  34. if p != nil {
  35. t.Errorf("Was %v, but expected an error", p)
  36. }
  37. if err == nil {
  38. t.Error("No error returned")
  39. }
  40. }
  41. func TestGeneratePolyEOFFullSize(t *testing.T) {
  42. b := []byte{1, 2, 0, 0, 0, 0}
  43. p, err := generate(3, 10, bytes.NewReader(b))
  44. if p != nil {
  45. t.Errorf("Was %v, but xpected an error", p)
  46. }
  47. if err == nil {
  48. t.Error("No error returned")
  49. }
  50. }
  51. func TestGenerateFullSize(t *testing.T) {
  52. b := []byte{1, 2, 0, 4}
  53. expected := []byte{10, 1, 2, 4}
  54. actual, err := generate(3, 10, bytes.NewReader(b))
  55. if err != nil {
  56. t.Error(err)
  57. }
  58. if !bytes.Equal(actual, expected) {
  59. t.Errorf("Was %v but expected %v", actual, expected)
  60. }
  61. }
  62. func TestInterpolate(t *testing.T) {
  63. in := []pair{
  64. pair{x: 1, y: 1},
  65. pair{x: 2, y: 2},
  66. pair{x: 3, y: 3},
  67. }
  68. if v, want := interpolate(in, 0), byte(0); v != want {
  69. t.Errorf("Was %v, but expected %v", v, want)
  70. }
  71. }