| // Copyright 2012 The Go Authors. All rights reserved. | 
 | // Use of this source code is governed by a BSD-style | 
 | // license that can be found in the LICENSE file. | 
 |  | 
 | package elliptic | 
 |  | 
 | import ( | 
 | 	"math/big" | 
 | 	"testing" | 
 | ) | 
 |  | 
 | var toFromBigTests = []string{ | 
 | 	"0", | 
 | 	"1", | 
 | 	"23", | 
 | 	"b70e0cb46bb4bf7f321390b94a03c1d356c01122343280d6105c1d21", | 
 | 	"706a46d476dcb76798e6046d89474788d164c18032d268fd10704fa6", | 
 | } | 
 |  | 
 | func p224AlternativeToBig(in *p224FieldElement) *big.Int { | 
 | 	ret := new(big.Int) | 
 | 	tmp := new(big.Int) | 
 |  | 
 | 	for i := uint(0); i < 8; i++ { | 
 | 		tmp.SetInt64(int64(in[i])) | 
 | 		tmp.Lsh(tmp, 28*i) | 
 | 		ret.Add(ret, tmp) | 
 | 	} | 
 | 	ret.Mod(ret, p224.P) | 
 | 	return ret | 
 | } | 
 |  | 
 | func TestToFromBig(t *testing.T) { | 
 | 	for i, test := range toFromBigTests { | 
 | 		n, _ := new(big.Int).SetString(test, 16) | 
 | 		var x p224FieldElement | 
 | 		p224FromBig(&x, n) | 
 | 		m := p224ToBig(&x) | 
 | 		if n.Cmp(m) != 0 { | 
 | 			t.Errorf("#%d: %x != %x", i, n, m) | 
 | 		} | 
 | 		q := p224AlternativeToBig(&x) | 
 | 		if n.Cmp(q) != 0 { | 
 | 			t.Errorf("#%d: %x != %x (alternative)", i, n, m) | 
 | 		} | 
 | 	} | 
 | } |