Fatti:
Fatti:
A. Il 15 aprile 1999 l'impresa luganese X._ SA (attrice) ha adito la Pretura del Distretto di Lugano, sezione 1, con un'azione volta all'accertamento della validità della disdetta dell'accordo di collaborazione stipulato il 21 dicembre 1994 con la società britannica Y._ Ltd. (convenuta).
Pacifica l'applicabilità del diritto svizzero, con sentenza 16 dicembre 2002 il Pretore ha accertato la violazione di varie clausole contrattuali da parte della convenuta, che con il suo comportamento ha irrimediabilmente minato il rapporto di collaborazione. Egli ha pertanto confermato la legittimità della rescissione del contratto significata dall'attrice il 14 aprile 1999.
Pacifica l'applicabilità del diritto svizzero, con sentenza 16 dicembre 2002 il Pretore ha accertato la violazione di varie clausole contrattuali da parte della convenuta, che con il suo comportamento ha irrimediabilmente minato il rapporto di collaborazione. Egli ha pertanto confermato la legittimità della rescissione del contratto significata dall'attrice il 14 aprile 1999.
B. Di diverso avviso la II Camera civile del Tribunale d'appello del Cantone Ticino, la quale, adita dalla convenuta, il 20 febbraio 2004 ha modificato la pronunzia pretorile, respingendo integralmente la petizione.
B. Di diverso avviso la II Camera civile del Tribunale d'appello del Cantone Ticino, la quale, adita dalla convenuta, il 20 febbraio 2004 ha modificato la pronunzia pretorile, respingendo integralmente la petizione.
C. Allo scopo di ottenere la modifica della predetta sentenza nel senso della conferma del giudizio di primo grado, il 24 marzo 2004 l'attrice ha inoltrato un ricorso per riforma al Tribunale federale.
Nella risposta del 2 luglio 2004 la convenuta ha proposto la reiezione del gravame e la conferma della decisione impugnata.

Diritto:
Diritto:
1. Il Tribunale federale si pronuncia d'ufficio e con pieno potere d'esame sulla ricevibilità del ricorso per riforma (<ref-ruling> consid. 2 con rinvii).
1.1 Contrariamente a quanto ritenuto dall'attrice, la causa in esame non configura un procedimento civile di natura non pecuniaria (art. 44 OG).
I procedimenti civili per diritti di carattere non pecuniario sono infatti quelli che, per loro natura, non sono valutabili in denaro. Non basta che la determinazione del valore litigioso sia complessa; è necessario ch'essa sia impossibile per il motivo che i diritti oggetto della causa non attengono al patrimonio di una persona né sono connessi, direttamente o indirettamente, con un rapporto giuridico di natura patrimoniale (<ref-ruling> consid. 1a pag. 78). L'applicazione di questi principi può risultare difficile qualora la fattispecie evidenzi sia aspetti di natura patrimoniale che non. In tale evenienza, la questione di sapere se un'azione di accertamento configura una causa inerente a diritti di carattere pecuniario va risolta tenendo conto dell'esistenza o inesistenza, in ultima analisi, di un interesse economico (<ref-ruling> consid. 2c pag. 531; <ref-ruling> consid. 2a). Ne discende che, per prassi costante, il litigio sulla qualità di socio di una società anonima viene considerato di natura pecuniaria, visti gli interessi economici connessi a tale posizione (cfr. <ref-ruling> consid. 1 pag. 75) mentre quello sulla qualità di socio di un'associazione viene ritenuto di natura non pecuniaria, prevalendo in questo caso la componente legata all'espressione di un diritto della personalità (<ref-ruling> consid. 1 pag. 296).
La causa in esame ha indiscutibilmente natura pecuniaria. Il litigio verte infatti sulla sussistenza di un rapporto contrattuale avente ripercussioni significative sul patrimonio delle parti. Che lo scopo perseguito dall'azione di accertamento sia in ultima analisi di natura economica è inoltre provato dal fatto che la stessa attrice, stando a quanto accertato nel giudizio impugnato, ha già preannunciato la volontà - a dipendenza dell'esito dell'attuale vertenza - d'intentare una causa di risarcimento nei confronti della convenuta.
1.2 Nei procedimenti civili per diritti di carattere pecuniario il ricorso per riforma è ammissibile solo quando, secondo le conclusioni delle parti, il valore litigioso dinanzi all'ultima giurisdizione cantonale raggiungeva almeno fr. 8'000.-- (art. 46 OG).
Né l'allegato ricorsuale né il giudizio impugnato forniscono indicazioni circa il valore della causa. Ora, il valore di una causa avviata con un'azione di accertamento è quello del diritto o rapporto giuridico di cui si chiede venga accertata l'esistenza rispettivamente l'inesistenza (cfr. Angelo Olgiati, Le norme generali per il procedimento civile nel Canton Ticino, Zurigo 2000, pag. 35). Alla luce degli importi indicati nella sentenza impugnata quo all'entità del fatturato derivante dall'accordo di collaborazione oggetto della presente causa, è possibile affermare che, pur non essendo determinabile con precisione, il valore litigioso è sicuramente di molto superiore ai fr. 8'000.-- richiesti dalla legge.
1.3 Interposto in tempo utile (art. 54 cpv. 1 OG) dalla parte soccombente contro una decisione finale emanata dal tribunale supremo del Cantone Ticino (art. 48 cpv. 1 OG) in una causa civile di carattere pecuniario, il cui valore litigioso davanti all'ultima istanza cantonale era superiore a fr. 8'000.-- (art. 46 OG), il ricorso per riforma si avvera pertanto di principio ricevibile.
1.3 Interposto in tempo utile (art. 54 cpv. 1 OG) dalla parte soccombente contro una decisione finale emanata dal tribunale supremo del Cantone Ticino (art. 48 cpv. 1 OG) in una causa civile di carattere pecuniario, il cui valore litigioso davanti all'ultima istanza cantonale era superiore a fr. 8'000.-- (art. 46 OG), il ricorso per riforma si avvera pertanto di principio ricevibile.
2. Il tenore dell'allegato ricorsuale impone ora alcune osservazioni preliminari di ordine formale.
2.1 Il ricorso per riforma è ammissibile per violazione del diritto federale (art. 43 cpv. 1 OG). Nel quadro di tale rimedio non può, per contro, essere invocata la violazione di un diritto costituzionale (art. 43 cpv. 1 seconda frase OG) o la violazione del diritto cantonale (cfr. art. 55 cpv. 1 lett. c OG).
Chiamato a pronunciarsi quale istanza di riforma, il Tribunale federale fonda il suo giudizio sui fatti così come sono stati accertati dall'ultima autorità cantonale, a meno che siano state violate disposizioni federali in materia di prove, debbano venire rettificati accertamenti di fatto derivanti da una svista manifesta (art. 63 cpv. 2 OG) o si renda necessario un complemento degli stessi a norma dell'art. 64 OG (<ref-ruling> consid. 1.4 pag. 140). Tutte queste critiche e gli atti cui si riferiscono devono essere debitamente specificati (art. 55 cpv. 1 lett. b e d OG). Fatte salve queste eccezioni, censure contro l'accertamento dei fatti e l'apprezzamento delle prove eseguiti dall'autorità cantonale sono improponibili, così come non si può far riferimento a circostanze non accertate nel giudizio impugnato, trattandosi di fatti nuovi (art. 55 cpv. 1 lett. c OG; DTF citato).
Il documento sottoposto all'esame del Tribunale federale disattende ampiamente questi principi. In esso viene infatti abbondantemente ridiscussa la valutazione del materiale probatorio esposta nella sentenza querelata, alla quale l'attrice oppone la propria versione dei fatti, corredandola di copiose spiegazioni sulle circostanze - prive di riscontro nell'atto impugnato - che hanno condotto alla stipulazione rispettivamente alla rottura del noto accordo. L'art. 43 cpv. 4 OG, richiamato in ingresso all'impugnativa, non sussidia all'attrice.
Tale norma assimila l'apprezzamento giuridico erroneo di un fatto alla violazione del diritto federale prevista dall'art. 43 cpv. 1 OG, è vero. Ma l'apprezzamento giuridico di un fatto altro non è che la sua qualificazione giuridica (sussunzione). In sostanza, dunque, il capoverso 4 non aggiunge nulla a quanto già stabilito all'art. 43 cpv. 1 OG (cfr. <ref-ruling> consid. 3; Poudret, Commentaire de la loi fédérale d'organisation judiciaire, vol. II, Berna 1990, nota 5 ad art. 43 OG, pag. 178). In particolare esso non concede alla parte che ricorre la facoltà di criticare liberamente l'apprezzamento delle prove eseguito in sede cantonale. Una simile critica avrebbe dovuto semmai venire proposta con un ricorso di diritto pubblico fondato sul divieto dell'arbitrio.
Ne discende che, nella misura in cui si discostano dalla fattispecie accertata nel giudizio impugnato, senza che venga nemmeno asseverata una delle circostanze eccezionali enunciate in ingresso al presente considerando, gli argomenti dell'attrice non possono essere tenuti in considerazione. L'esame delle censure ricorsuali avverrà pertanto sulla base della fattispecie accertata dai giudici cantonali.
2.2 Va detto che nel suo gravame - formulato in maniera alquanto confusa - l'attrice nemmeno indica le norme di diritto federale che reputa violate.
Giusta l'art. 55 cpv. 1 lett. c OG, l'allegato ricorsuale deve indicare quali sono le norme violate dalla Corte cantonale e in che misura esse non sono state rispettate. In realtà, secondo una prassi ormai consolidata, non è necessario che le norme di legge vengano esplicitamente menzionate; è tuttavia necessario ch'esse possano venire determinate chiaramente sulla scorta del contenuto del ricorso per riforma. Alla parte che ricorre incombe pertanto l'onere di prendere chiaramente posizione sulle motivazioni della decisione impugnata, così da far emergere le ragioni che la inducono a ritenere che la stessa contravviene a regole del diritto federale (<ref-ruling> consid. 2a).
Giusta l'art. 55 cpv. 1 lett. c OG, l'allegato ricorsuale deve indicare quali sono le norme violate dalla Corte cantonale e in che misura esse non sono state rispettate. In realtà, secondo una prassi ormai consolidata, non è necessario che le norme di legge vengano esplicitamente menzionate; è tuttavia necessario ch'esse possano venire determinate chiaramente sulla scorta del contenuto del ricorso per riforma. Alla parte che ricorre incombe pertanto l'onere di prendere chiaramente posizione sulle motivazioni della decisione impugnata, così da far emergere le ragioni che la inducono a ritenere che la stessa contravviene a regole del diritto federale (<ref-ruling> consid. 2a).
3. Fatte queste premesse, data la complessità della vertenza, prima di chinarsi sul ricorso appare utile formulare le seguenti considerazioni introduttive.
3.1 Con il contratto stipulato il 21 dicembre 1994, denominato "Cooperative agreement", le parti si sono reciprocamente concesse, per la durata di 10 anni, l'esclusiva mondiale per la commercializzazione delle macchine per la saldatura interna automatica progettate e realizzate dall'attrice.
Come rettamente ritenuto dalle istanze cantonali questo accordo configura un contratto di rappresentanza esclusiva. Nell'ambito di tale negozio giuridico, infatti, una parte (detta concedente) promette all'altra (detta rappresentante o concessionaria) di fornirle determinati beni ad un certo prezzo, garantendole l'esclusività entro un territorio delimitato. Dal canto suo, il rappresentante si impegna ad acquistare il prodotto e a promuoverne la vendita nel territorio concordato (Tercier, Les contrats spéciaux, 3a ed., Zurigo 2003, n. 6964 segg.).
3.2 Trattandosi di un contratto di durata ogni parte ha la possibilità di disdirlo anzitempo per motivi gravi (<ref-ruling> consid. 3 con rinvii giurisprudenziali e riferimenti dottrinali).
La possibilità di rescindere anticipatamente un contratto deve tuttavia rimanere l'eccezione, in ambito contrattuale vigendo il principio per cui gli impegni assunti vanno rispettati (pacta sunt servanda). Lo scioglimento del contratto per gravi motivi presuppone in particolare che il rapporto di fiducia fra le parti sia pregiudicato a tal punto da non poter più ragionevolmente pretendere dalla parte che ha significato la disdetta la continuazione del contratto sino alla sua regolare scadenza (<ref-ruling> consid. 5a).
3.3 A mente dell'attrice quest'eventualità si è realizzata nella fattispecie. Per questo motivo il 14 aprile 1999 essa ha rescisso la convenzione con effetto immediato.
Chiamati a pronunciarsi sulla validità della disdetta significata dall'attrice - confermata dal pretore e contestata dalla convenuta - i giudici cantonali sono stati confrontati con un triplice compito. Essi hanno dapprima dovuto stabilire il contenuto degli obblighi assunti contrattualmente dalla convenuta. A tal scopo - dato il tenore piuttosto vago di alcune clausole contrattuali, segnatamente la A1 e A6 - hanno proceduto ad un'interpretazione normativa degli accordi intervenuti fra le parti. L'interpretazione delle dichiarazioni delle parti secondo il principio dell'affidamento concerne l'applicazione del diritto e può pertanto essere riesaminata nella giurisdizione per riforma (cfr. 129 III 118 consid. 2.5). Una volta determinato il contenuto delle clausole, i giudici hanno dovuto pronunciarsi sull'asserita violazione delle stesse.
Come meglio esposto nel successivo considerando 4, la loro decisione si fonda sull'apprezzamento delle prove, ciò che la rende insindacabile nella giurisdizione per riforma. Da ultimo, i giudici sono stati chiamati a decidere se le violazioni accertate potevano giustificare lo scioglimento anticipato del contratto oppure no. Trattandosi di un giudizio retto dal precetto dell'equità esso può essere rivisto dal Tribunale federale nel quadro del presente rimedio, seppur con un certo riserbo (cfr. infra consid. 5).
Come meglio esposto nel successivo considerando 4, la loro decisione si fonda sull'apprezzamento delle prove, ciò che la rende insindacabile nella giurisdizione per riforma. Da ultimo, i giudici sono stati chiamati a decidere se le violazioni accertate potevano giustificare lo scioglimento anticipato del contratto oppure no. Trattandosi di un giudizio retto dal precetto dell'equità esso può essere rivisto dal Tribunale federale nel quadro del presente rimedio, seppur con un certo riserbo (cfr. infra consid. 5).
4. Come anticipato, la disdetta 14 aprile 1999 è stata confermata dal giudice di primo grado, il quale ha imputato alla convenuta la violazione di quattro clausole contrattuali, segnatamente la A1, la A6, la C3 e la A7.
4.1 A differenza del Pretore, il Tribunale d'appello ha negato la violazione della clausola A1, in base alla quale "Y._ Ltd. emetterà a favore di X._ SA ordinazioni d'acquisto sufficienti a garantire la prosecuzione dell'accordo". I giudici cantonali hanno in particolare ritenuto che il criterio della sola cadenza delle ordinazioni - senza tenere conto del loro ammontare - adottato dal Pretore, non permette di stabilire se le stesse fossero "sufficienti a garantire la prosecuzione dell'accordo". Per potersi pronunciare con cognizione su questo punto sarebbe stato necessario - secondo il Tribunale d'appello - conoscere e confrontare, da una parte, gli investimenti e tutti gli altri costi a carico dell'attrice in forza del contratto di collaborazione e, dall'altra, i ricavi ottenuti. In assenza di dati precisi a questo riguardo - la cui adduzione incombeva all'attrice, gravata dall'onere della prova (art. 8 CC) - la Corte ticinese ha concluso per l'assenza dell'asserita violazione.
Contrariamente a quanto sembra aver inteso l'attrice, la massima istanza cantonale non ha negato la rilevanza del criterio della cadenza ma l'ha ritenuto insufficiente ai fini del giudizio, precisando la necessità di combinarlo con quello della mole delle ordinazioni, dei costi di produzione, rispettivamente dei profitti. Il ragionamento esposto nella sentenza impugnata è sensato e gli argomenti che l'attrice adduce per contrastarlo - nella misura in cui sono comprensibili ed ammissibili - non convincono. Visto il carattere impreciso della formulazione della clausola contrattuale scelta dalle parti, toccava all'attrice - che si prevaleva della sua violazione - fornire indicazioni concrete circa l'entità e la frequenza delle ordinazioni che sarebbero state necessarie per garantire la viabilità del contratto.
Va detto che anche dinanzi al Tribunale federale, pur asserendo genericamente che questi dati sarebbero evincibili dalla documentazione versata agli atti, essa non precisa né i documenti né gli importi che avrebbero potuto e dovuto venir tenuti in considerazione.
In queste circostanze, la decisione dell'autorità cantonale di concludere per l'assenza della violazione della clausola A1 merita di essere confermata.
4.2 Lo stesso vale con riferimento all'asserita lesione della clausola A6, in base alla quale "Y._ Ltd. si adopererà per effettuare ordinazioni a X._ SA in maniera regolare con pagamenti in anticipo, in modo da permettere a X._ SA di mantenere uno stock adeguato di pezzi di ricambio".
I giudici cantonali hanno innanzitutto precisato che - contrariamente a quanto ritenuto dal Pretore - questa clausola non si riferiva alle macchine per la saldatura interna automatica, questione già regolata dalla clausola A1, ma solo ai relativi pezzi di ricambio. Inoltre, la clausola non si limitava ad imporre l'ordinazione dei pezzi "in maniera regolare", ma, nella misura in cui lo scopo era quello di mantenere uno stock adeguato, imponeva di fatto che i quantitativi fossero di una certa e non meglio definita consistenza. Infine - hanno rilevato i giudici del Tribunale d'appello - l'obbligo di ordinazione a carico della convenuta non era assoluto: con l'uso dei termini "si adopererà" è stata infatti prevista una sua relativizzazione qualora si fossero presentate circostanze tali da comprometterne in buona fede l'attuazione. Anche in questo caso, l'attrice - gravata dall'onere allegatorio e probatorio - non ha saputo indicare in cosa consistesse e a quanto ammontasse il valore dello "stock (...) di pezzi di ricambio" rispettivamente quale fosse il criterio per ritenerlo "adeguato" né tantomeno quante sarebbero state le ordinazioni necessarie "in maniera regolare" che avrebbero permesso di mantenere quel particolare stock. In assenza di questi dati la Corte ticinese si è ritrovata, come per la clausola A1, nell'impossibilità di pronunciarsi sull'asserita violazione del contratto. Ma non solo. La violazione contrattuale è stata esclusa anche perché dall'istruttoria è risultata una cadenza tutto sommato regolare delle ordinazioni di pezzi di ricambio, mentre la diminuzione dei quantitativi - in particolare dopo il 1996 - è stata messa in relazione con la causa promossa nel gennaio 1996 in Canada da Z._ contro K._, al beneficio di una licenza per Stati Uniti e Canada.
In queste circostanze - hanno concluso i giudici ticinesi - non si può sostenere che la convenuta, nei limiti delle possibilità concesse dalla situazione in cui si trovava, non si sia adoperata per dar seguito all'impegno assunto nella clausola A6.
La doppia motivazione della sentenza impugnata regge alla critica dell'attrice, la quale non contesta l'interpretazione della clausola bensì propone ancora una volta - inammissibilmente - argomenti rivolti contro l'apprezzamento delle prove, facendo ampio riferimento a fatti privi di riscontro nel giudizio impugnato.
4.3 L'alta Corte ticinese ha per contro aderito alla decisione pretorile in punto alla violazione, in due occasioni, della clausola C3, giusta la quale "nessun diritto od obbligo da parte di X._ SA o Y._ Ltd. contenuto in questo accordo può essere ceduto parzialmente od integralmente, senza il consenso scritto di entrambe le parti".
4.4 Infine, è stata pure confermata la violazione della clausola A7, secondo cui "Y._ Ltd. manterrà un elenco di dove si trova ogni macchina per la saldatura interna automatica e di tutti i ricavi derivanti dal noleggio di queste macchine. X._ SA sarà informata ogni 3 mesi dell'ammontare dei ricavi derivanti dai noleggi delle macchine ed avrà diritto a ricevere un compenso ed a essere pagata di un importo pari al 25% dell'ammontare dei noleggi, fino a che non ci si accorderà diversamente da entrambe le parti, per iscritto, di aumentare o diminuire la percentuale dovuta a circostanze specifiche". Dall'istruttoria è infatti emerso che la convenuta non ha mai fornito le informazioni evocate nell'accordo.
4.4 Infine, è stata pure confermata la violazione della clausola A7, secondo cui "Y._ Ltd. manterrà un elenco di dove si trova ogni macchina per la saldatura interna automatica e di tutti i ricavi derivanti dal noleggio di queste macchine. X._ SA sarà informata ogni 3 mesi dell'ammontare dei ricavi derivanti dai noleggi delle macchine ed avrà diritto a ricevere un compenso ed a essere pagata di un importo pari al 25% dell'ammontare dei noleggi, fino a che non ci si accorderà diversamente da entrambe le parti, per iscritto, di aumentare o diminuire la percentuale dovuta a circostanze specifiche". Dall'istruttoria è infatti emerso che la convenuta non ha mai fornito le informazioni evocate nell'accordo.
5. In definitiva, il Tribunale d'appello ha ammesso la violazione della clausola C3, a due riprese, e della clausola A7. Le violazioni contrattuali accertate non sono state tuttavia reputate idonee a giustificare la rescissione del contratto per motivi gravi.
5.1 Sull'esistenza di una "causa grave" il giudice è tenuto a decidere secondo il suo libero apprezzamento (cfr., per analogia, art. 337 cpv. 3 CO), applicando le regole del diritto e dell'equità (art. 4 CC). Per giurisprudenza invalsa, il Tribunale federale esamina con riserbo l'esercizio del potere d'apprezzamento da parte dell'ultima istanza cantonale. Esso interviene quando la decisione si scosta senza motivo dai principi stabiliti da dottrina e giurisprudenza in materia di libero apprezzamento o si fonda su fatti che nel caso particolare non avevano importanza alcuna oppure, al contrario, quando non si è tenuto conto di elementi che avrebbero dovuto essere presi in considerazione. Inoltre, il Tribunale federale sanziona le decisioni rese in virtù di un tale potere d'apprezzamento quando esse sfociano in un risultato manifestamente ingiusto o in un'iniquità scioccante (<ref-ruling> consid. 3.1 pag. 220 con rinvii).
5.2 In concreto, la valutazione complessiva delle circostanze non ha permesso ai giudici ticinesi di concludere per l'esistenza di una situazione di una gravità tale da non permettere ragionevolmente la continuazione dell'accordo sino alla normale scadenza prevista per il 31 dicembre 2004.
Innanzitutto perché l'attrice non è attiva solamente nel settore delle macchine per la saldatura interna automatica, né è stato preteso che questo costituisse la sua fonte di reddito più importante, dalla quale dipendeva la sua sopravvivenza. Secondariamente, le due violazioni del divieto di cessione (clausola C3) non possono essere considerate gravi: la prima concerneva la concessione di un'estensione al Sudamerica della licenza per l'uso e il noleggio già concessa - con l'accordo dell'attrice - a K._ per il Canada e gli Stati Uniti, che non ha causato un particolare pregiudizio all'attrice; la seconda riguardava invece la cessione dell'esclusiva, per il Canada, a Q._, che era stata comunicata all'attrice, la quale non aveva sollevato obiezioni, adottando così un atteggiamento ambiguo. Nemmeno la violazione dell'obbligo d'informazione (clausola A7) è apparsa grave. Essa è risultata più che altro di natura formale, non essendo stato provato che il 25% del ricavo dai noleggi avesse già raggiunto la somma di Lit. 400'000'000, a partire dalla quale - stando a quanto emerso in istruttoria - le parti avevano pattuito che sarebbe scattato l'obbligo di pagamento. I giudici cantonali hanno poi evidenziato il fatto che le violazioni accertate non concernevano punti essenziali dell'accordo di collaborazione, quali le ordinazioni (clausola A1 e A6), i pagamenti (clausola A2), la prestazione di garanzie (clausola A3), l'obbligazione di reciproca esclusività (clausola A4) e l'obbligo di riservatezza e discrezione (clausole A5, C1 e C2). Infine, la Corte ha ritenuto di dover prendere in considerazione - a favore della convenuta - gli sforzi, anche economici, messi in atto per garantire la prosecuzione del contratto di collaborazione.
5.3 Nel ricorso l'attrice si duole a più riprese di un abuso del potere d'apprezzamento da parte del giudice del merito.
Occorre tuttavia rilevare ch'essa confonde, manifestamente, il potere d'apprezzamento che spetta al giudice in virtù dell'art. 4 CC - e che, entro i limiti già descritti, può essere riesaminato nel quadro di un ricorso per riforma - e l'apprezzamento delle prove agli atti - che invece sfugge all'esame del Tribunale federale quale istanza di riforma (cfr. consid. 2.1). Gli argomenti addotti per criticare la valutazione dell'autorità ticinese si fondano infatti su fatti nuovi (siccome privi di riscontro nel giudizio impugnato) oppure in contrasto con quelli accertati in sede cantonale.
Ora, nelle circostanze accertate ed esposte dal Tribunale d'appello - che vincolano il Tribunale federale nella giurisdizione per riforma (art. 63 cpv. 2 OG) - il giudizio sulla gravità delle violazioni contrattuali imputabili alla convenuta non appare scioccante né tantomeno manifestamente iniquo. In particolare tenuto conto del fatto che, a differenza del Pretore, il Tribunale d'appello ha negato - a causa dell'assenza dei dati necessari al giudizio, che avrebbero dovuto venir forniti all'attrice - la violazione di due clausole concernenti punti essenziali dell'accordo. Non va inoltre dimenticato che la rescissione del contratto costituisce l'eccezione (cfr. supra consid. 3.2). Considerati e ponderati i vari fattori di valutazione pertinentemente menzionati nella sentenza querelata, le tre violazioni contrattuali accertate, anche se non banali, non inducono ad escludere la possibilità di proseguire il contratto sino alla sua scadenza. La conclusione dei giudici ticinesi non viola pertanto l'art. 4 CC.
Ora, nelle circostanze accertate ed esposte dal Tribunale d'appello - che vincolano il Tribunale federale nella giurisdizione per riforma (art. 63 cpv. 2 OG) - il giudizio sulla gravità delle violazioni contrattuali imputabili alla convenuta non appare scioccante né tantomeno manifestamente iniquo. In particolare tenuto conto del fatto che, a differenza del Pretore, il Tribunale d'appello ha negato - a causa dell'assenza dei dati necessari al giudizio, che avrebbero dovuto venir forniti all'attrice - la violazione di due clausole concernenti punti essenziali dell'accordo. Non va inoltre dimenticato che la rescissione del contratto costituisce l'eccezione (cfr. supra consid. 3.2). Considerati e ponderati i vari fattori di valutazione pertinentemente menzionati nella sentenza querelata, le tre violazioni contrattuali accertate, anche se non banali, non inducono ad escludere la possibilità di proseguire il contratto sino alla sua scadenza. La conclusione dei giudici ticinesi non viola pertanto l'art. 4 CC.
6. Dato che la decisione di respingere l'azione di accertamento dell'attrice si avvera conforme al diritto federale, non risulta necessario chinarsi sulla questione dell'ammissibilità della stessa, lasciata irrisolta dai giudici cantonali.
6. Dato che la decisione di respingere l'azione di accertamento dell'attrice si avvera conforme al diritto federale, non risulta necessario chinarsi sulla questione dell'ammissibilità della stessa, lasciata irrisolta dai giudici cantonali.
7. Discende da tutto quanto esposto la reiezione integrale del ricorso per riforma.
Gli oneri processuali e le ripetibili seguono la soccombenza (art. 156 cpv. 1 e 159 cpv. 1 e 2 OG).

Per questi motivi, il Tribunale federale pronuncia:
Per questi motivi, il Tribunale federale pronuncia:
1. Il ricorso è respinto.
1. Il ricorso è respinto.
2. La tassa di giustizia di fr. 10'000.-- è posta a carico dell'attrice, la quale rifonderà fr. 12'000.-- alla convenuta per ripetibili della sede federale.
2. La tassa di giustizia di fr. 10'000.-- è posta a carico dell'attrice, la quale rifonderà fr. 12'000.-- alla convenuta per ripetibili della sede federale.
3. Comunicazione ai patrocinatori delle parti e alla II Camera civile del Tribunale d'appello del Cantone Ticino.